Timmy
09151e37ef
Fix gateway bot Claude Code cwd so MCP tools are discovered
...
In gateway mode the bot's Claude Code CLI was spawned with cwd set to
a nonexistent project subdirectory (gateway_config_dir/project_name).
This meant it couldn't find .mcp.json and had no MCP tools available.
Now the bot uses the gateway config directory as cwd in gateway mode,
where the auto-generated .mcp.json points to the gateway's MCP proxy.
Also fixes cargo fmt formatting.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-21 12:15:04 +01:00
Timmy
e7deb65e45
Fix gateway bot proxying freeform messages as commands
...
The gateway proxy was sending every message's first word to the project
server's /api/bot/command endpoint, then displaying the "Unknown command"
response before falling through to the LLM. Now the proxy only fires
when the first word matches a known bot command.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-21 12:05:58 +01:00
Timmy
45f1096b96
Gateway bot: proxy commands to active project instead of reading local state
...
In gateway mode the bot has no local CRDT or project filesystem, so all
bot commands (status, backlog, start, assign, etc.) returned empty or
broken results. Now the gateway bot proxies non-local commands via HTTP
to the active project's /api/bot/command endpoint, which already exists
on every project server.
Only a small set of gateway-local commands (help, ambient, reset, switch)
are still handled directly by the gateway. Everything else is forwarded
automatically, so new commands added in the future will work through the
proxy without additional gateway changes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-21 11:47:06 +01:00
dave
4b710b02f2
huskies: merge 591_story_gateway_chat_commands_use_active_project_root_instead_of_gateway_config_dir
2026-04-16 16:14:05 +00:00
dave
9f0274417d
huskies: merge 579_bug_matrix_bot_messages_render_markdown_headings_without_line_breaks_or_formatting
2026-04-16 08:22:34 +00:00
dave
52b21c22b1
huskies: merge 566_story_gateway_ui_bot_configuration_page
2026-04-14 18:57:32 +00:00
dave
d824dc4b73
huskies: merge 558_story_matrix_bot_can_run_on_the_gateway_to_manage_multiple_projects_from_one_chat
2026-04-14 10:01:04 +00:00
dave
979cf39228
huskies: merge 557_refactor_remove_all_filesystem_fallback_paths_crdt_is_the_only_source_of_truth
2026-04-14 09:14:07 +00:00
dave
845b85e7a7
fix: add --all to cargo fmt in script/test and autoformat codebase
...
cargo fmt without --all fails with "Failed to find targets" in
workspace repos. This was blocking every story's gates. Also ran
cargo fmt --all to fix all existing formatting issues.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 14:07:08 +00:00
dave
ae4cacefe8
huskies: merge 549_bug_stale_stage_transition_notifications_for_stories_that_skipped_stages
2026-04-12 15:40:11 +00:00
dave
cec62dad1c
huskies: merge 542_refactor_add_doc_comments_to_all_undocumented_source_files_and_generate_source_map_in_readme
2026-04-12 13:16:11 +00:00
dave
5f01631e6a
huskies: merge 543_story_resume_failed_coder_agents_with_resume_instead_of_starting_fresh_sessions
2026-04-12 12:58:42 +00:00
dave
91be0ac47f
huskies: merge 534_refactor_unify_timer_tick_watchdog_and_watcher_sweep_into_a_single_1_second_tick_loop
2026-04-10 17:38:42 +00:00
dave
a59f4fc1a5
huskies: merge 532_story_remove_startup_reconcile_pass_and_drift_notification_no_filesystem_to_reconcile_against
2026-04-10 16:40:56 +00:00
dave
11d19d8902
huskies: merge 530_story_eliminate_filesystem_markdown_shadows_entirely_crdt_db_is_the_only_story_store
2026-04-10 14:59:58 +00:00
dave
fe405e81c6
huskies: merge 527_story_remove_rate_limit_hard_block_bot_notifications_from_matrix_chat
2026-04-10 11:27:36 +00:00
dave
5377eeae5b
huskies: merge 513_story_startup_reconcile_pass_that_detects_drift_between_crdt_pipeline_items_and_filesystem_shadows
2026-04-10 10:16:45 +00:00
dave
0de9200d48
huskies: merge 512_story_migrate_chat_commands_from_filesystem_lookup_to_crdt_db
2026-04-09 23:03:58 +00:00
dave
84717b04bd
huskies: merge 520_story_typed_pipeline_state_machine_in_rust_foundation_replaces_stringly_typed_crdt_views_with_strict_enums_subsumes_436
2026-04-09 21:27:48 +00:00
dave
8fd49d563e
huskies: merge 492_story_remove_filesystem_pipeline_state_and_store_story_content_in_database
2026-04-08 03:07:33 +00:00
dave
c56e462340
huskies: merge 472_story_discord_chat_transport
2026-04-04 12:12:03 +00:00
Timmy
2d8ccb3eb6
huskies: rename project from storkit to huskies
...
Rename all references from storkit to huskies across the codebase:
- .storkit/ directory → .huskies/
- Binary name, Cargo package name, Docker image references
- Server code, frontend code, config files, scripts
- Fix script/test to build frontend before cargo clippy/test
so merge worktrees have frontend/dist available for RustEmbed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 16:12:52 +01:00
dave
8059df8330
storkit: merge 463_story_configurable_rate_limit_notification_suppression
2026-04-03 12:59:54 +00:00
dave
641384e794
storkit: merge 462_bug_stage_transition_notifications_can_arrive_out_of_order_and_show_wrong_story_name
2026-04-03 12:04:58 +00:00
dave
56e71293d6
chore: remove debug log from verification handler
2026-04-02 17:10:09 +00:00
dave
ce4a0cb7f9
storkit: merge 458_story_matrix_bot_ignores_messages_addressed_to_other_bots_in_ambient_mode
2026-04-02 15:51:22 +00:00
dave
cd6d98b99f
debug: log all room messages in verification handler to diagnose in-room verification
2026-04-02 13:08:02 +00:00
dave
7003fca873
storkit: merge 456_bug_matrix_bot_ignores_in_room_verification_requests_from_element
2026-04-02 11:53:58 +00:00
dave
5516ec4595
storkit: merge 448_story_send_oauth_login_link_via_chat_when_credentials_are_missing
2026-03-31 10:28:02 +00:00
dave
ddc4a57cd2
storkit: merge 444_refactor_extract_shared_test_helpers_test_ctx_write_story_file_make_api
2026-03-28 19:51:17 +00:00
dave
8cd881c8f1
storkit: merge 440_refactor_consolidate_is_permission_approval_into_chat_util
2026-03-28 19:47:33 +00:00
dave
8ee59f5dc1
storkit: merge 439_refactor_unify_story_stuck_states_into_a_single_status_field
2026-03-28 18:36:42 +00:00
dave
08db28d9d6
storkit: merge 437_bug_strip_prefix_ci_panics_on_multi_byte_utf_8_input
2026-03-28 16:33:26 +00:00
dave
fe0a032e8e
storkit: merge 430_bug_status_command_traffic_light_dots_not_coloured_in_matrix
2026-03-28 13:57:38 +00:00
dave
52513b55ff
storkit: merge 427_story_server_side_text_normalization_for_chat_message_line_breaks
2026-03-28 10:41:43 +00:00
dave
b44f3a33e3
feat(423): auto-schedule timer on rate limit to resume after reset
...
- pty.rs: detect rate_limit_event hard blocks, parse reset_at, emit
WatcherEvent::RateLimitHardBlock with story_id, agent_name, reset_at
- watcher.rs: add RateLimitHardBlock variant to WatcherEvent enum
- timer.rs: add TimerStore::upsert (add-or-update-to-later) and
spawn_rate_limit_auto_scheduler (listens for RateLimitHardBlock,
upserts timer for the blocked story)
- notifications.rs: handle RateLimitHardBlock events with a debounced
chat notification including the scheduled resume time;
add format_rate_limit_hard_block_notification helper
- matrix/mod.rs: subscribe second watcher_rx for auto-scheduler,
pass it to run_bot
- matrix/bot/run.rs: wire spawn_rate_limit_auto_scheduler into bot startup
Tests cover: AC1 (hard block detection in pty), AC2 (auto-scheduler
adds timer), AC3 (upsert deduplication), AC5 (chat notification sent),
AC6 (worktree preserved — timer fires start_agent on existing worktree)
2026-03-28 10:11:08 +00:00
dave
98b5475160
storkit: merge 425_story_chat_notification_when_a_story_blocks_with_reason
2026-03-28 09:38:47 +00:00
dave
1193b7ac9a
storkit: merge 419_bug_matrix_bot_crashes_on_transient_network_error_instead_of_retrying
2026-03-28 09:11:26 +00:00
dave
cf5424f9a6
storkit: merge 421_story_timer_command_for_deferred_agent_start
2026-03-28 09:02:20 +00:00
dave
665c036a56
storkit: merge 417_refactor_split_matrix_bot_rs_into_focused_modules
2026-03-28 08:30:01 +00:00
Timmy
108a697483
storkit: merge 397_bug_selection_screen_directory_picker_unreadable_in_dark_mode
2026-03-26 11:16:21 +00:00
dave
5dd8feb75c
storkit: merge 393_story_pipeline_stage_notifications_for_whatsapp_and_slack_transports
2026-03-25 15:37:54 +00:00
dave
077288e7b7
storkit: merge 392_refactor_extract_shared_transport_utilities_from_matrix_module_into_chat_submodule
2026-03-25 14:46:02 +00:00
dave
0457fbfecc
storkit: merge 391_bug_strip_prefix_ci_panics_on_multi_byte_utf_8_characters
2026-03-25 14:04:59 +00:00
dave
84a775be77
storkit: merge 389_story_whatsapp_phone_number_allowlist_authorization
2026-03-25 13:42:31 +00:00
dave
11bbfca3da
storkit: merge 386_story_unreleased_command_shows_list_of_stories_since_last_release
2026-03-24 22:23:01 +00:00
Timmy
a24e4c5c85
Making Matrix config fields optional to meet Twilio login needs
2026-03-24 21:05:35 +00:00
dave
79edc28334
storkit: merge 383_refactor_reorganize_chat_system_into_chat_module_with_transport_submodules
2026-03-24 17:57:21 +00:00