Commit graph

101 commits

Author SHA1 Message Date
Himanshu Dongre
ef8faf6e4d Add Project Current State endpoint and UI panel
Add GET /api/v5/current/spaces/{id} — a packaged, computed-on-demand
snapshot of where a space is right now: current direction, counts,
attention signals (open questions, divergence, active work), active
work claims, open tasks grouped by intent, recent milestones, and
recent activity. Shared payload contract with the smriti current CLI
surface built in parallel.

Render it as the ProjectCurrentState panel at the top of LineagePage,
replacing the hand-rolled current-state summary. Extract a shared
_get_active_claims helper so the state and current endpoints report
active work identically. No schema changes.
2026-05-16 20:01:16 +05:30
Himanshu Dongre
c470947477
Polish worktree short ids and clean finish (#5) 2026-05-04 15:28:19 +05:30
Himanshu Dongre
8c963198e1 Add canonical project root for spaces 2026-05-04 13:43:44 +05:30
Himanshu Dongre
3cb514b279 Add V3 dirty paths and skill pack v2.1 2026-05-04 13:11:20 +05:30
Himanshu Dongre
e8ce2f9de0 Merge remote-tracking branch 'origin/smriti/claude-code/555d3005' 2026-05-04 12:58:16 +05:30
Himanshu Dongre
1bab89cdea Populate worktree list probe columns 2026-05-04 12:52:35 +05:30
Himanshu Dongre
c4a21f3d7d Sync CONTRIBUTING test counts; expand DECISIONS worktree rationale
CONTRIBUTING: fix stale test counts (177 integration / 97 unit / 70 CLI
became 122 / 125 / 122 across V1+V2 work).

DECISIONS: expand the V2 worktree rationale section. The V2 PR shipped
a single paragraph on "why binding is optional"; this adds the broader
design rationale that motivates the primitive itself — the chaanbeen
catastrophic failure mode, why git worktrees vs separate clones, why
state-brief shells out to git per request rather than persisting drift,
why the probe cache is 60s. Existing "binding is optional" paragraph
stays, now flowing naturally from the expanded context.

Done in worktree ~/.smriti/worktrees/smriti-dev/claude-code-555d3005
on branch smriti/claude-code/555d3005 in parallel with Codex's
worktree-list-probe work (V2 dogfood test).
2026-05-04 12:51:16 +05:30
Himanshu Dongre
432502932a README: update worktrees bullet to reflect V2 shipped
V1 mentioned that claim binding and state-brief enrichment would land
in V2. V2 is now on main (39003a8), so update the bullet to describe
the actual current behavior: bind a claim to a worktree, see drift
in state brief, skill pack v2.0 teaches the reflex. Tool count
unchanged at 21 (V2 added params to existing tools, not new ones).
2026-05-04 12:35:39 +05:30
Himanshu Dongre
39003a8aa6 Add V2 worktree-bound claims 2026-05-04 12:16:32 +05:30
Himanshu Dongre
571bbbcc3e Sync README and CONTRIBUTING after V1 worktree merge
- README: 17 → 21 MCP tools, add worktrees bullet to coordination
  primitives (notes V1 = CRUD primitive only; binding + state-brief
  enrichment deferred to V2)
- CONTRIBUTING: 17 → 21 MCP tools

DECISIONS.md and skill pack template are intentionally not touched —
the V1 prompt explicitly deferred those to V2 so the rationale and
skill pack reflexes can be written together with the actual usage
patterns we'll learn from V2 (claim binding + state brief).
2026-05-04 01:10:02 +05:30
Himanshu Dongre
b5ccdce758 Add V1 worktree primitive
Adds WorkTree schema and migration, /api/v5/worktrees CRUD, CLI and MCP worktree surfaces, targeted regression tests, health capability, and minimal docs. Live Postgres migration/manual localhost verification intentionally remain pending until the full backend provider-config gate is resolved.
2026-05-04 00:58:30 +05:30
Himanshu Dongre
4625b5138a Add real screenshots to README and fix CommitDetailPage diff crash
Captured three screenshots for the README using playwright against
the live local environment:
- lineage-dashboard.png — real LineagePage showing 56 checkpoints,
  summary panel, needs-attention signal, author badges
- checkpoint-detail.png — the autonomy milestone checkpoint with
  structured tasks (intent badges), entities, and founder notes
- cli-state-and-metrics.png — terminal-styled render of real CLI
  output from smriti state --compact and smriti metrics

Fixed a crash in CommitDetailPage exposed by the screenshot attempt:
diffList was typed list[str] but tasks are now structured objects
after the task IDs feature landed. React threw "Objects are not
valid as a React child" when trying to render the diff result.
Fix normalizes tasks to their text field before diffing.

README now references real images instead of inline code blocks.
TypeScript clean, 331 tests pass.
2026-04-14 15:04:58 +05:30
Himanshu Dongre
4103df8d9c Replace broken image references with inline CLI output examples
The 3 screenshot placeholders pointed at files that don't exist yet,
which would render as broken images on GitHub. Replaced with inline
code blocks showing real CLI output (smriti state --compact and
smriti metrics) — these render cleanly now and can be swapped for
actual screenshots later when captured.
2026-04-14 01:42:58 +05:30
Himanshu Dongre
dafd164968 Refresh README assets and add demo recording script
Removed stale Loom link and old checkpoint-diff screenshot reference.
README now references 3 new screenshots matching the current product:
LineagePage dashboard, CLI state+metrics, checkpoint detail with
structured tasks and notes. Screenshots are placeholders until
captured from the live environment.

Added docs/DEMO_SCRIPT.md: 3-act, 4-5 minute recording script
covering the state surface, coordination proof (metrics + autonomy
milestone), and developer experience. Includes exact commands,
highlight points, and a screenshot capture checklist.
2026-04-14 01:38:25 +05:30
Himanshu Dongre
911e379955 Rewrite README for relaunch: lead with multi-agent coordination proof
Restructured from single-user chat-drift framing to multi-agent
coordination as the primary story. Leads with the problem (agents
have no shared state), the solution (structured reasoning-state
backend), and the proof (56 checkpoints, 30 cross-agent handoffs,
autonomous complementary task selection). Single-user value prop
preserved as a secondary section. All claims grounded in current
reality — no future hype, no unqualified comparisons.
2026-04-14 01:26:18 +05:30
Himanshu Dongre
64caf0c801 Add space metrics endpoint and sync docs with current product surface
Metrics: GET /api/v5/metrics/spaces/{id} returns coordination (checkpoints,
agents, cross-agent continuations, claim completion rate), state quality
(decisions/tasks per checkpoint, structured task adoption, milestones),
and branch lifecycle KPIs. All computed on demand from existing data —
no new schema, no events, no background jobs. CLI: smriti metrics <space>.

Doc sync: fix stale tool counts (CONTRIBUTING 15→17, cli/README 16→17),
update REPO_STRUCTURE (skill pack v1.5→v1.9, test files/counts), remove
shipped branch-lifecycle from ARCHITECTURE "not yet" section, add task
IDs + task-referenced claims + capabilities manifest + recheck pattern
to ARCHITECTURE structured tasks section, add coordination primitives
summary to README.
2026-04-14 01:11:56 +05:30
Himanshu Dongre
9e570a04e3 Advertise task ID capability in health 2026-04-14 00:37:41 +05:30
Himanshu Dongre
638e6a15d3 Add collision detection tests for task-referenced claims
Three integration tests covering the recheck pattern:
- Duplicate task_id claims both visible (advisory, not rejected)
- Different task_id claims show no collision
- Full pivot flow: detect collision, abandon, re-claim on different task
2026-04-14 00:30:07 +05:30
Himanshu Dongre
3358515593 Add Alembic migration for work_claims.task_id column
Single nullable VARCHAR(100) column addition. Applied and verified
against the real local Postgres: claims with task_id round-trip
correctly, claims without task_id work unchanged.
2026-04-14 00:23:29 +05:30
Himanshu Dongre
beae3b5c9b Add stable task IDs and task-referenced claims for collision detection
Tasks gain an optional id field (short slug like "impl-1", "docs-arch").
Claims gain an optional task_id field referencing a specific task. The
state brief shows (id: X) on tasks and (task: X) on claims, making it
precise which task a claim covers.

Skill pack v1.9 teaches the recheck pattern: after creating a claim,
re-read state to detect if another agent claimed the same task_id in
the race window. If collision detected, abandon and pivot.

This solves the near-simultaneous start problem from the autonomy
validation where both agents picked [docs] because claims had no
task-level identity.
2026-04-14 00:16:46 +05:30
Himanshu Dongre
fad732d7e9 Integrate Codex's intent-vocabulary rationale into DECISIONS.md
Cherry-picked the non-redundant section from Codex's
codex/docs-task-claim-affinity-rationale branch: "Why structured
tasks reuse the claim intent vocabulary." Dropped Codex's
open/done-status section (redundant with existing coverage).

The three structured-task decision sections now flow as:
  reuse vocabulary → instead of task manager → open/done only
2026-04-13 23:25:02 +05:30
Himanshu Dongre
56526a1d78 Document structured tasks and task-claim affinity design rationale
ARCHITECTURE.md: new section on structured tasks as the autonomy
mechanism — task shape, intent hints, status semantics, extract
prompt, rendering, and the selection logic.

DECISIONS.md: why structured tasks instead of a task manager, a
recommended-action endpoint, or richer claim semantics. Why task
status is open/done only — claims are live state, tasks are durable.
2026-04-13 23:14:41 +05:30
Himanshu Dongre
6da93ae856 Add capabilities manifest to /health for stale-backend detection
The health endpoint now returns git_sha and a capabilities list so
agents can detect when the running backend is missing features they
need (e.g., claims, structured_tasks). Skill pack v1.8 teaches the
capabilities probe: check /health when a 404 or missing section
suggests the backend is stale, tell the human to restart.

Diagnosed from the autonomy validation where Codex hit a backend
without /api/v5/claims — the backend process was running old code.
2026-04-13 23:06:34 +05:30
Himanshu Dongre
bd257c3393 Add end-to-end integration tests for structured task round-trip
Tests the full pipeline: create checkpoint with structured task objects
via V4 commit endpoint, read back via V2 commits, verify JSONB
round-trip preserves intent_hint/blocked_by/status. Also tests mixed
string+object tasks and formatter rendering in state brief.
2026-04-13 22:48:48 +05:30
Himanshu Dongre
422597015f Widen ManualCommitRequest.tasks to accept structured task objects
The V4 chat commit endpoint had tasks: list[str], which rejected
the structured task objects produced by the extract prompt. Widened
to bare list to match CommitCreate and CommitModel.
2026-04-13 22:47:25 +05:30
Himanshu Dongre
73f26e721c Add structured tasks with intent hints for autonomous work selection
Tasks in checkpoints evolve from flat strings to objects with optional
intent_hint (implement/review/investigate/docs/test), blocked_by
(dependency label), and status (open/done). Agents reading the state
brief can now self-select complementary work by matching task intents
against active claim intent_types — no founder routing needed.

Backward-compatible: old string tasks normalize at render time. No
schema migration. JSONB handles both shapes. Skill pack v1.7 teaches
the autonomous selection reflex.
2026-04-13 22:27:32 +05:30
Himanshu Dongre
ae94d73ad3 Skill pack v1.6: teach checkpoint notes, fix stale tool count (16→17) 2026-04-13 20:52:49 +05:30
Himanshu Dongre
91d93becfa Harden lineage note indicator semantics 2026-04-13 20:44:07 +05:30
Himanshu Dongre
f8e5012f64 Add needs-attention signal to LineagePage summary panel 2026-04-13 20:28:12 +05:30
Himanshu Dongre
64b158e4c8 Add note indicators to LineagePage checkpoint cards 2026-04-13 19:25:43 +05:30
Himanshu Dongre
9b109ae94c Add checkpoint notes: additive founder annotations with kind (note/milestone/noise) 2026-04-13 19:10:37 +05:30
Himanshu Dongre
a3b570e609 Add freshness check section to cli/README agent workflow walkthrough 2026-04-13 18:52:33 +05:30
Himanshu Dongre
51cc91ec60 Teach freshness reflex in skill pack: check --since before checkpointing 2026-04-13 18:22:14 +05:30
Himanshu Dongre
44db645460 Add --since freshness parameter to smriti state for pull-time staleness detection 2026-04-13 18:05:05 +05:30
Himanshu Dongre
4c7241fff7 Add current-state summary panel and fix getSpaceState API path 2026-04-13 17:41:14 +05:30
Himanshu Dongre
8d01e1e866 Surface active work claims and branch disposition in LineagePage 2026-04-13 17:22:33 +05:30
Himanshu Dongre
5f5e15c7aa Add generic OpenAI-compatible provider for cheap/local model support 2026-04-13 16:56:34 +05:30
Himanshu Dongre
318812d527 Add compact-mode evidence log for real-usage observations 2026-04-13 16:38:59 +05:30
Himanshu Dongre
208f04ebda Fix stats honesty: compute from actual rendered sections, never silently no-op 2026-04-13 16:28:50 +05:30
Himanshu Dongre
c613e45512 Add --stats flag for compact-mode savings measurement 2026-04-13 16:11:45 +05:30
Himanshu Dongre
5a3ea976ed Adopt compact mode as default for startup state injection across all surfaces 2026-04-13 15:58:40 +05:30
Himanshu Dongre
b8e6e0403d Add --compact mode to smriti state: artifact labels only with recovery instruction 2026-04-13 15:37:41 +05:30
Himanshu Dongre
f6d43f8831 Polish onboarding: venv activation in setup output, clarify .env as primary config 2026-04-13 15:16:48 +05:30
Himanshu Dongre
4ddd0e2ef7 Sync docs: 15->16 MCP tools, add init+branch to REPO_STRUCTURE, add smriti_close_branch to tools table 2026-04-13 14:41:41 +05:30
Himanshu Dongre
3a98e9daa5 Add smriti init for one-step agent onboarding 2026-04-13 14:25:42 +05:30
Himanshu Dongre
0e1f3de8af Add CLI and MCP tests for branch close 2026-04-13 13:37:06 +05:30
Himanshu Dongre
878b550ebd Default branch close disposition to integrated 2026-04-13 13:18:34 +05:30
Himanshu Dongre
405592da55 Add branch disposition for lifecycle closure: integrated, abandoned, active 2026-04-13 13:03:22 +05:30
Himanshu Dongre
cff02163c3 Document Codex startup equivalent in README 2026-04-13 12:00:23 +05:30
Himanshu Dongre
2f98a31323 Fix stale MCP tool counts: 13->15 across all docs 2026-04-13 11:09:17 +05:30