Commit Graph

800 Commits

Author SHA1 Message Date
Dave
980b7f880a story-kit: start 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input 2026-02-23 15:50:26 +00:00
Dave
3a0004d212 story-kit: create 82_story_shift_enter_inserts_newline_instead_of_sending_in_chat_input 2026-02-23 15:50:01 +00:00
Dave
8a4914e6b2 story-kit: accept 81_story_agent_roster_badges_show_availability_state 2026-02-23 15:47:41 +00:00
Dave
285b63ec66 story-kit: merge 81_story_agent_roster_badges_show_availability_state 2026-02-23 15:47:28 +00:00
Dave
fe064c1b99 story-kit: queue 81_story_agent_roster_badges_show_availability_state for merge 2026-02-23 15:47:14 +00:00
Dave
b62ccc9573 story-kit: queue 81_story_agent_roster_badges_show_availability_state for QA 2026-02-23 15:44:03 +00:00
Dave
0ef5e99d1b feat(story-81): agent roster badges show availability state with green idle styling
- Add data-testid="roster-dot-{name}" to both active and idle dot spans for testability
- Change idle badge from grey (#888, #555, #333) to green (#3fb950, #3fb95015, #3fb95040)
- Update idle label from "idle" to "available" to reinforce positive availability signal
- Update tooltip from "— idle" to "— available" for consistency
- Active/running agents retain blue (#58a6ff) pulsing dot styling unchanged
- Add 4 new Vitest tests covering green idle dot, green badge styling, blue active dot, and blue active badge

Closes story 81: Agent roster badges show availability state

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:43:25 +00:00
Dave
2386484c49 story-kit: start 81_story_agent_roster_badges_show_availability_state 2026-02-23 15:40:11 +00:00
Dave
2cc5907501 story-kit: start 81_story_agent_roster_badges_show_availability_state 2026-02-23 15:37:40 +00:00
Dave
db60ed0d65 story-kit: create 81_story_agent_roster_badges_show_availability_state 2026-02-23 15:37:30 +00:00
Dave
be3db53524 story-kit: accept 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui 2026-02-23 15:36:25 +00:00
Dave
8133ef2847 story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for merge 2026-02-23 15:36:09 +00:00
Dave
42a47a2645 story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for merge 2026-02-23 15:36:01 +00:00
Dave
6afad0d10b story-kit: start 62_story_allow_frontend_ui_to_accept_permissions_requests 2026-02-23 15:34:56 +00:00
Dave
5e33a0c0b3 story-kit: create 62_story_allow_frontend_ui_to_accept_permissions_requests 2026-02-23 15:34:34 +00:00
Dave
377b8144a9 story-kit: accept 79_story_agents_panel_skips_archived_work_on_startup 2026-02-23 15:31:55 +00:00
Dave
c76f0b100c story-kit: merge 79_story_agents_panel_skips_archived_work_on_startup 2026-02-23 15:31:38 +00:00
Dave
e118c6240f story-kit: queue 79_story_agents_panel_skips_archived_work_on_startup for merge 2026-02-23 15:31:25 +00:00
Dave
722a63949c story-80: approve test plan
Updates test_plan status to approved in the story file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:31:23 +00:00
Dave
42d520fc80 story-kit: remove 58_story_live_agent_panel_updates 2026-02-23 15:30:37 +00:00
Dave
2f09ce2584 story-kit: queue 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui for QA 2026-02-23 15:29:59 +00:00
Dave
2833cbcda9 story-80: remove model/apiKey and rate limit notifications from chat UI
Suppresses the noisy system-init notification '[model | apiKey: source]'
and rate limit notifications that were being streamed into the chat UI
from the claude_code provider. Normal chat functionality is unaffected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 15:29:41 +00:00
Dave
1d011d9041 story-kit: queue 79_story_agents_panel_skips_archived_work_on_startup for QA 2026-02-23 15:27:51 +00:00
Dave
de0f06dd4d story-kit: start 79_story_agents_panel_skips_archived_work_on_startup 2026-02-23 15:27:14 +00:00
Dave
e8153eabfa story-kit: start 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui 2026-02-23 15:26:34 +00:00
Dave
90936173ce story-kit: create 80_story_remove_model_apikey_and_rate_limit_notifications_from_chat_ui 2026-02-23 15:26:20 +00:00
Dave
7e8d0573ce story-kit: remove 76_story_story_with_colon_testing_the_fix 2026-02-23 15:20:13 +00:00
Dave
4e418f806c story-kit: start 79_story_agents_panel_skips_archived_work_on_startup 2026-02-23 15:19:29 +00:00
Dave
44e641966d story-kit: remove 70_story_server_owned_agent_completion_remove_report_completion_dependency 2026-02-23 15:18:39 +00:00
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