The feelings field on process_thoughts signaled too narrowly. Agents using it interpreted the name as "emotional processing only," so entries that integrated thinking, noticing, and emotional processing landed nowhere clean — and that integrated form is what most journal entries actually are. Renaming the field to reflections with a broadened description gives those entries an obvious home.
A new observations field fills a separate gap: short, one-or-two-sentence noticings ("I noticed X.", "Y keeps coming up.") that don't belong in a longer reflection but are worth searching back for later.
This release also removes the obsolete process_feelings tool. It was hidden from tool discovery in May 2025 when process_thoughts replaced it but its handler was kept "for backwards compatibility." Keeping a hidden tool literally called process_feelings while the schema is broadening away from "feelings" was incoherent, and consistent with the no-alias decision for the field rename.
feelingsfield renamed toreflectionsonprocess_thoughts. No alias. Callers sendingfeelingswill be rejected with "At least one thought category must be provided." Existing on-disk markdown files with## Feelingsheaders are intentionally untouched and remain searchable viasearch_journalwithsections: ['feelings'].process_feelingstool removed. The tool was hidden from tool discovery in May 2025 but its handler was kept for backward compatibility. Now removed. Callers that knew the undocumented name will get "Unknown tool: process_feelings".JournalManager.writeEntryremoved along with its solely-ownedformatEntryhelper. The only caller was the deadprocess_feelingshandler.
observationsfield onprocess_thoughtsfor short, discrete noticings. Routes to the user-global journal alongsidereflections. Renders as## Observationsbetween## Reflectionsand## Project Notes.- Broadened
reflectionsdescription covering "integrated thinking — what you noticed, felt, understood, or processed."
- Dead
process_feelingsrequest handler insrc/server.ts ProcessFeelingsRequestinterface insrc/types.tsJournalManager.writeEntrymethod andformatEntryhelper insrc/journal.ts- Six
writeEntrytests intests/journal.test.ts - Stale "single
process_feelingstool" architecture descriptions inCLAUDE.md
process_thoughtstool-level description andsearch_journalsectionsfilter example updated to use the new field namespackage.jsondescription updated from "process feelings and thoughts" to "private journaling and reflection capability"- README and CLAUDE.md updated to describe the new field set
- Re-homed three test assertions onto the live
writeThoughtscode path that were previously only exercised through the deletedwriteEntrytests: microsecond filename precision, YAML frontmatter line-by-line structure, and same-day filename collision avoidance.
read_recent_entriestool for reading the full content of the N most recent journal entries (complementslist_recent_entries, which returns only metadata and excerpts)
PRIVATE_JOURNAL_PATHenvironment variable to override all journal storage to a single directory, for containerized deployments (#8 related)- 30-second timeout on embedding model initialization to prevent server hangs from stale lock files (#5)
- Migrated from CommonJS to ESM output, fixing
tools/listreturning empty on Node.js 22+ due to CJS/ESM dual-package hazard (#18) - Fixed test expectations for embedding file generation (file count and semantic search assertions)
jest.config.jsrenamed tojest.config.cjs(required by ESM migration)- TypeScript target updated from ES2020 to ES2022 with NodeNext module resolution
Initial release with multi-section journaling, semantic search, and dual project/user storage.