Commit Graph

126 Commits

Author SHA1 Message Date
Dave
5e5cdd9b2f Accept story 30: Worktree-based agent orchestration
Add git worktree isolation for concurrent story agents. Each agent now
runs in its own worktree with setup/teardown commands driven by
.story_kit/project.toml config. Agents stream output via SSE and support
start/stop lifecycle with Pending/Running/Completed/Failed statuses.

Backend: config.rs (TOML parsing), worktree.rs (git worktree lifecycle),
refactored agents.rs (broadcast streaming), agents_sse.rs (SSE endpoint).
Frontend: AgentPanel.tsx with Run/Stop buttons and streaming output log.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:58:53 +00:00
Dave
7e56648954 Use STORYKIT_PORT for both backend and frontend, add .story_kit_port to ignore files
Single env var STORYKIT_PORT configures backend port, frontend proxy target,
frontend dev server port (port + 2172), and WebSocket host. Added .story_kit_port
to .gitignore and .ignore to prevent git tracking and cargo watch restart loops.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:29:50 +00:00
Dave
e54209eb5a Story 32: Multi-Instance Worktree Support
Add configurable port via STORYKIT_PORT env var (default 3001). Server
prints machine-readable STORYKIT_PORT=<port> on startup and writes
.story_kit_port file for discovery. Frontend proxy and WebSocket read
VITE_STORYKIT_PORT env var instead of hardcoding port 3001.

7 new tests (4 backend, 3 frontend) all passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:14:33 +00:00
Dave
b4f2eacea6 Accept story 28: Show Remaining Test TODOs in the UI
All acceptance criteria verified. Always show story name/id in TODO
panel regardless of story count. Archive story.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:04:05 +00:00
Dave
3807f0e625 Merge story-31: View Upcoming Stories
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

# Conflicts:
#	frontend/src/api/workflow.ts
#	frontend/src/components/Chat.test.tsx
#	frontend/src/components/Chat.tsx
#	server/src/http/workflow.rs
2026-02-19 15:54:02 +00:00
Dave
939387104b Story 31: View Upcoming Stories
Add GET /workflow/upcoming endpoint that reads .story_kit/stories/upcoming/
and returns story IDs with names parsed from frontmatter. Add UpcomingPanel
component wired into Chat view with loading, error, empty, and list states.

12 new tests (3 backend, 9 frontend) all passing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:51:12 +00:00
Dave
f942a00b96 Merge branch 'feature/story-28-ui-show-test-todos' 2026-02-19 15:36:04 +00:00
Dave
2c3003d721 Story 28: Show remaining test TODOs in the UI
Add TodoPanel that displays unchecked acceptance criteria from current
story files. Backend parses `- [ ]` lines from markdown, frontend
shows them in a panel with refresh. Includes 4 Rust unit tests,
3 Vitest tests, 3 Playwright E2E tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:33:45 +00:00
Dave
50c905d868 Merge spike/claude-code-integration: PTY-based Claude Code with multi-agent support
Spike proved: spawning claude -p in a PTY from Rust gets Max subscription
billing. Multi-agent concurrency confirmed with session resumption.
Includes AgentPool REST API, claude-code provider, and spike documentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

# Conflicts:
#	.ignore
2026-02-19 15:30:56 +00:00
Dave
f17cd63d2f Revert spike ports to 3001/5173, add stories 32 and 33
Reverts port changes made during the spike back to default (3001/5173).
Adds two new stories for multi-worktree support: dynamic port management
(story 32) and worktree diff inspection with editor integration (story 33).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:30:23 +00:00
Dave
68a19c393e Spike: PTY-based Claude Code integration with multi-agent concurrency
Proves that spawning `claude -p` in a pseudo-terminal from Rust gets Max
subscription billing (apiKeySource: "none", rateLimitType: "five_hour")
instead of per-token API charges. Concurrent agents run in parallel PTY
sessions with session resumption via --resume for multi-turn conversations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:25:22 +00:00
Dave
fd152cb5b7 Merge story-29: Backfill tests for maximum coverage
Adds 57 Rust tests and 60 frontend tests across 4 batches:
- Batch 1: store, search, workflow
- Batch 2: fs, shell, http/workflow
- Batch 3: usePathCompletion, api/client, api/workflow
- Batch 4: App, GatePanel, ReviewPanel

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:46:42 +00:00
Dave
8f684a6ca4 Story 27: Coverage tracking (full-stack)
Add end-to-end coverage tracking: backend collects vitest coverage,
records metrics with threshold/baseline tracking, and blocks acceptance
on regression. Frontend displays coverage in gate/review panels with
a "Collect Coverage" button. Includes 20 Rust tests, 17 Vitest tests,
and 14 Playwright E2E tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:45:57 +00:00
Dave
f56d9e04e0 WIP: Batch 4 — App, GatePanel, ReviewPanel frontend tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:05:57 +00:00
Dave
b6e55a513f WIP: Batch 3 — backfill frontend tests
- usePathCompletion: 16 tests (isFuzzyMatch, getCurrentPartial, hook behavior)
- api/client.ts: 9 tests (fetch mocks for all major endpoints, error handling)
- api/workflow.ts: 6 tests (record, acceptance, review queue, ensure)

Frontend tests: 13 → 44

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:55:59 +00:00
Dave
e47c8814e6 Removing unneeded tsconfig 2026-02-19 12:58:29 +00:00
Dave
013b28d77f Story 26: Establish TDD workflow and quality gates
Add workflow engine with acceptance gates, test recording, and review
queue. Frontend displays gate status (blocked/ready), test summaries,
failing badges, and warnings. Proceed action is disabled when gates
are not met. Includes 13 unit tests (Vitest) and 9 E2E tests
(Playwright) covering all five acceptance criteria.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 12:54:04 +00:00
Dave
f1e5ac72e0 Project creation is workign 2026-02-16 20:34:03 +00:00
Dave
3be9088794 Split into components 2026-02-16 19:59:45 +00:00
Dave
1adbadb6eb ibid 2026-02-16 19:53:43 +00:00
Dave
e6638a6517 Clean up previous project display 2026-02-16 19:53:31 +00:00
Dave
8ed40dd444 Fixed up project picker a bit 2026-02-16 19:48:39 +00:00
Dave
45bce740b6 Text-completion picker to select a project 2026-02-16 19:44:29 +00:00
Dave
ffab287d16 Put in a recent project picker 2026-02-16 18:57:39 +00:00
Dave
a2188e2c7f Smoothing out some tauri conversion leftovers 2026-02-16 16:02:30 +00:00
Dave
0876c53e17 moved from tauri to a server with embedded UI 2026-02-13 12:31:36 +00:00