You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat(completeness): module + NoGoal/ClosedNoOutcome rules
* feat(completeness): decision-no-evidence + suggested-unconfirmed rules
* feat(completeness): pending-leak rule
* feat(completeness): best-effort pending_count fs helper
* feat(completeness): render section + pack integration
* chore(completeness): version bump + CHANGELOG
* feat(dream): add Source::Dream event provenance
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): backend trait, backfill IO types, mock backend
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): Pass A prompt builder
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): Anthropic HTTP backend for Pass A
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): dream_state watermark migration + accessors
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): session scope resolution (since + limit)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): dedup-guard via token Jaccard similarity
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): stamp dream provenance on backfilled events
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): run_dream orchestration with dry-run + indexing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): CLI dream subcommand with --dry-run/--since/--task/--limit
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(dream): tested session→task mapping + transcript flattening
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(dream): add dream backfill entry under 0.12.0 CHANGELOG
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(hierarchy): add tasks.parent_id column + index
* feat(hierarchy): persist parent_id from open event meta
* feat(hierarchy): children_of + parent_of queries
* feat(hierarchy): would_create_cycle guard
* feat(hierarchy): cascade pack-cache invalidation to parent
* feat(hierarchy): roll up direct children in parent pack
* feat(hierarchy): CLI create --parent with validation
* feat(hierarchy): MCP task_create parent param
* feat(hierarchy): warn on closing a task with open subtasks
* feat(hierarchy): CLI list --tree
* chore(hierarchy): CHANGELOG entry for subtask hierarchy
* feat(close-gate): CLI close prints completeness gaps (non-blocking)
* feat(close-gate): MCP task_close returns completeness_gaps
* chore(close-gate): CHANGELOG entry
* feat(recall): pure relevant_recall engine for proactive recall
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(recall): PostToolUse hook surfaces prior rejections via additionalContext
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* chore(recall): CHANGELOG entry for push-recall
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(push-recall): MCP PostToolUse prepends recall banner via updatedMCPToolOutput
Complements claude-memory-60m's additionalContext path (which skips mcp__
tools). Gated MCP-only; falls through to the capture queue so event capture
is unaffected. Best-effort: no hit / any error passes the output through
unchanged. Reuses tj_core::recall::relevant_recall — no recall logic here.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(push-recall): CHANGELOG entry for updatedMCPToolOutput recall
No version bump — workspace is already 0.12.0; sibling bullet under the
existing push-recall (additionalContext) entry.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(core): migration v7 + project decision alternatives column
Add nullable alternatives column to decisions table (migration v7) and
project a decision event's meta.alternatives JSON into it on index. The
append-only log is untouched; existing decisions stay NULL. Pack cache is
wiped so packs re-render once events carry alternatives.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(pack): render structured decision alternatives
render_active_decisions now reads the alternatives column and renders a
'considered:' block under each decision, marking the chosen option and
showing each rationale. Malformed/empty payloads are skipped so the
decision itself always renders. Coexists with the Completeness and
Subtasks sections added earlier.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(mcp): event_add alternatives param (decision-only)
EventAddParams gains an optional alternatives JSON value. On a decision
event it is stamped onto meta.alternatives; on any other event type the
handler rejects it with a clear error. MCP-only for v1 — no CLI path.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(changelog): structured decision alternatives under 0.12.0
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(constraint-context): add TaskContext.constraints field (additive)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(constraint-context): render Known constraints block in classifier prompt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(constraint-context): gather task constraints into recent_task_contexts
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* chore(constraint-context): CHANGELOG entry under 0.12.0
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(reminder): pure active_task_reminder builder in tj-core
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(reminder): SessionStart source=compact re-injects active task
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(reminder): CHANGELOG entry under 0.12.0
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(memory-export): pure frontmatter::render_memory renderer
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(memory-export): export-memory CLI writes Claude-memory frontmatter files
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(memory-export): CHANGELOG entry for export-memory under 0.12.0
* chore: gitignore .docs/ (local specs + plans)
* style: cargo fmt --all across new feature code
* fix(ci): cargo fmt --all + serialize XDG-mutating MCP test
- cargo fmt --all over the epic's new code (fmt check was failing CI)
- task_pack_returns_rpc_error_when_state_dir_is_unusable now holds the
handler_env() mutex; it mutates the process-global XDG_DATA_HOME which
the task_create/task_close handler tests read, so under parallel CI it
poisoned their env mid-run and task_close_reports_completeness_gaps
failed with an unrelated path error.
* fix(ci): clear clippy warnings (-D warnings)
- needless borrow (cli.rs test) + map_or->is_some_and (cli main) via clippy --fix
- mcp tests: reword handler_env doc to drop the '+' markdown-list marker
(doc_list_item_without_indentation), and #![allow(await_holding_lock)] on
the tests module — the guard is intentionally held across .await to
serialize handler tests on the current-thread runtime.
* fix(ci): cross-platform export-memory test + restore MSRV toolchain pin
- export_memory_dry_run test: assert filename + 'memory' separately instead
of the 'memory/<file>' literal — Windows prints a backslash separator.
- ci: msrv job pins dtolnay/rust-toolchain@1.88 again (dependabot #17 bumped
it to @1.100, which installs a non-existent rust 1.100.0 → 404).
* fix(ci): escape <id> in rustdoc comments (invalid-html-tags -D warnings)
cargo doc with RUSTDOCFLAGS=-D warnings rejected the bare <id> in the
create --parent / task_create parent doc comments as an unclosed HTML tag.
Reworded to 'the given id'.
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments