Commit Graph

721 Commits

Author SHA1 Message Date
Dave
eaa3453395 Add coder-opus agent to project.toml
Adds an opus-tier coder agent for complex tasks requiring deep
architectural understanding (80 max turns, $20 budget).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:18:29 +00:00
Dave
2c1ccebbf1 story-kit: create 79_story_agents_panel_skips_archived_work_on_startup 2026-02-23 15:17:06 +00:00
Dave
e141ab2c59 story-kit: accept 74_story_agent_lozenges_float_across_ui_during_assignment 2026-02-23 15:15:56 +00:00
Dave
66534480f7 Merge story 74: agent lozenges float across UI during assignment
Resolves conflict in AgentPanel.test.tsx between story 73 (fade-out)
and story 74 (lozenge fly animation) - kept both the assertion and
the comment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:15:50 +00:00
Dave
a18d78e7ac story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 15:14:08 +00:00
Dave
31e66d7b46 story-kit: start 70_story_server_owned_agent_completion_remove_report_completion_dependency 2026-02-23 15:14:01 +00:00
Dave
a02b78fccc story-kit: queue 74_story_agent_lozenges_float_across_ui_during_assignment for merge 2026-02-23 15:12:19 +00:00
Dave
83bffed78c story-kit: queue 74_story_agent_lozenges_float_across_ui_during_assignment for QA 2026-02-23 15:09:26 +00:00
Dave
3b3104ba2c fix: use act instead of waitFor in fake-timer test for agent fade-out
waitFor's internal polling setInterval is itself faked when vi.useFakeTimers()
is active, causing it to hang indefinitely. Replace the affected assertions
with act + multiple Promise.resolve() to flush React state updates, and a
direct assertion after act+vi.advanceTimersByTime instead of a second waitFor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:09:11 +00:00
Dave
8b912d1e9d style: biome format AgentPanel.test.tsx imports
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:04:23 +00:00
Dave
ef728331cf feat: FLIP-style lozenge fly animation when agents are assigned to stories
Implements Story 74: agent lozenges now animate as fixed-position overlays
that fly from the roster badge in AgentPanel to the story slot in StagePanel
(and back when the agent is removed), satisfying all acceptance criteria.

Key changes:
- LozengeFlyContext.tsx (new): coordinates FLIP animations via React context.
  LozengeFlyProvider tracks pipeline changes, hides slot lozenges during
  fly-in (useLayoutEffect before paint), then creates a portal-rendered
  fixed-position clone that transitions from roster → slot (or reverse).
  z-index 9999 ensures the clone travels above all other UI elements.
- AgentPanel.tsx: RosterBadge registers its DOM element with the context
  so fly animations know the correct start/end coordinates.
- StagePanel.tsx: AgentLozenge registers its DOMRect on every render via
  useLayoutEffect (for fly-out) and reads pendingFlyIns to stay hidden
  while a fly-in clone is in flight. Added align-self: flex-start so the
  lozenge maintains its intrinsic width and never stretches in the panel.
- Chat.tsx: right-column panels wrapped in LozengeFlyProvider.
- LozengeFlyContext.test.tsx (new): 10 tests covering fixed width,
  fly-in/fly-out clone creation, portal placement, opacity lifecycle,
  and idle vs active visual distinction.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:04:10 +00:00
Dave
1c787a29da story-kit: queue 70_story_server_owned_agent_completion_remove_report_completion_dependency for merge 2026-02-23 15:03:41 +00:00
Dave
771d1bd39e story-kit: queue 70_story_server_owned_agent_completion_remove_report_completion_dependency for QA 2026-02-23 15:00:48 +00:00
Dave
8bdbe8193c chore: sync pipeline story/bug files in worktree
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:00:33 +00:00
Dave
9bd266eb3f Server-owned agent completion: remove report_completion dependency
When an agent process exits normally, the server now automatically runs
acceptance gates (uncommitted changes check + cargo clippy + tests) and
advances the pipeline based on results. This replaces the previous model
where agents had to explicitly call report_completion as an MCP tool.

Changes:
- Add run_server_owned_completion() free function in agents.rs that runs
  gates on process exit, stores a CompletionReport, and advances pipeline
- Wire it into start_agent's spawned task (replaces simple status setting)
- Remove report_completion from MCP tools list and handler (mcp.rs)
- Update default_agent_prompt() to not reference report_completion
- Update all agent prompts in project.toml (supervisor, coders, qa,
  mergemaster) to reflect server-owned completion
- Add guard: skip gates if completion was already recorded (legacy path)
- Add 4 new tests for server-owned completion behavior
- Update tools_list test (26 tools, report_completion excluded)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 15:00:10 +00:00
Dave
641fd5420a story-kit: accept 77_bug_create_bug_file_writes_no_yaml_front_matter 2026-02-23 14:56:22 +00:00
Dave
6e9b5da458 story-kit: merge 77_bug_create_bug_file_writes_no_yaml_front_matter 2026-02-23 14:56:08 +00:00
Dave
532031102d story-kit: queue 77_bug_create_bug_file_writes_no_yaml_front_matter for merge 2026-02-23 14:55:57 +00:00
Dave
f0849ba647 story-kit: start 74_story_agent_lozenges_float_across_ui_during_assignment 2026-02-23 14:55:22 +00:00
Dave
953cc909f1 story-kit: queue 77_bug_create_bug_file_writes_no_yaml_front_matter for QA 2026-02-23 14:53:02 +00:00
Dave
1f5a384cbb story-kit: create 78_story_create_spike_mcp_tool 2026-02-23 14:49:40 +00:00
Dave
7fd9388b69 story-kit: remove 75_story_test_story_with_colon 2026-02-23 14:47:41 +00:00
Dave
f51c2e0268 story-kit: start 77_bug_create_bug_file_writes_no_yaml_front_matter 2026-02-23 14:47:10 +00:00
Dave
1f0120d2d4 story-kit: accept 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:46:55 +00:00
Dave
31be646cc7 story-kit: create 77_bug_create_bug_file_writes_no_yaml_front_matter 2026-02-23 14:46:50 +00:00
Dave
ef1591dbd7 story-kit: create 77_bug_create_bug_file_writes_no_yaml_front_matter 2026-02-23 14:46:39 +00:00
Dave
e2dc56fc96 story-kit: create 76_story_story_with_colon_testing_the_fix 2026-02-23 14:46:16 +00:00
Dave
3109282b3b story-kit: start 74_story_agent_lozenges_float_across_ui_during_assignment 2026-02-23 14:45:23 +00:00
Dave
d5efbc0a53 story-kit: queue 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name for QA 2026-02-23 14:44:46 +00:00
Dave
ebbaed50ac story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:42:38 +00:00
Dave
2ab9d1e57b story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:42:20 +00:00
Dave
5142584691 story-kit: start 70_story_server_owned_agent_completion_remove_report_completion_dependency 2026-02-23 14:39:11 +00:00
Dave
d6fd446ca5 story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:34:42 +00:00
Dave
37fef66fa1 story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:34:01 +00:00
Dave
79b6cb4f87 story-kit: queue 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name for merge 2026-02-23 14:33:46 +00:00
Dave
a649d08fbe story-kit: create 75_story_test_story_with_colon 2026-02-23 14:28:30 +00:00
Dave
4499ba8d97 story-kit: accept 73_story_fade_out_completed_agents 2026-02-23 14:27:58 +00:00
Dave
32e1f0d342 story-kit: start 73_story_fade_out_completed_agents 2026-02-23 14:27:15 +00:00
Dave
6297d1643e story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:26:52 +00:00
Dave
1795a0853e story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:26:20 +00:00
Dave
38e564aaef story-kit: create 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:25:38 +00:00
Dave
334071194a story-kit: accept 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:24:57 +00:00
Dave
7132291507 story-kit: start 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:24:17 +00:00
Dave
4ac6c4d114 story-kit: start 70_story_server_owned_agent_completion_remove_report_completion_dependency 2026-02-23 14:23:07 +00:00
Dave
e34dc6fb2c story-kit: queue 73_story_fade_out_completed_agents for QA 2026-02-23 14:18:47 +00:00
Dave
df94c2fa0b story-kit: remove 72_bug_story_creation_does_not_quote_yaml_special_characters_in_name 2026-02-23 14:15:50 +00:00
Dave
c672528294 story-kit: queue 70_story_server_owned_agent_completion_remove_report_completion_dependency for QA 2026-02-23 14:15:18 +00:00
Dave
e994a1c738 story-kit: remove 51_story_deterministic_spike_lifecycle_management 2026-02-23 14:13:12 +00:00
Dave
f7183d3271 story-kit: accept 71_bug_server_health_endpoint_missing 2026-02-23 14:12:30 +00:00
Dave
dd5fc48fb6 story-kit: merge 71_bug_server_health_endpoint_missing 2026-02-23 14:12:15 +00:00