dave
846b3e1b4c
huskies: merge 1153 story huskies projects chat command — list every registered project with port and status
2026-05-20 00:23:44 +00:00
dave
9a286315a3
huskies: merge 1149 story huskies health chat command — surface gateway, sled, matrix, creds, and build-hash status
2026-05-19 20:11:55 +00:00
dave
2593b36072
huskies: merge 1148 story Per-sled upgrade chat command using huskies upgrade (1138), serial-locked
2026-05-19 18:39:40 +00:00
dave
de638603cd
huskies: merge 1144 story Gateway trampoline-restart: detached helper survives the gateway's own death
2026-05-19 18:13:26 +00:00
dave
b1dec36e1c
huskies: merge 1140 story One-shot project-rebuild chat command: rebuild image, swap container, reconnect, preserve state
2026-05-18 14:55:31 +00:00
dave
70797753df
huskies: merge 1132 story Chat-bot proxy reads stale gateway_project_urls BTreeMap instead of live store (1122 missed this seam)
2026-05-18 00:02:37 +00:00
dave
c1b7e12b0b
huskies: merge 1122 story Chat-bot switch command reads stale gateway_projects Vec instead of live gateway_projects_store
2026-05-17 18:49:58 +00:00
dave
10d992a7e4
huskies: merge 1106 story Chat bootstrap Phase 1: new project chat command spawns a bare project container and registers it with the gateway
2026-05-16 22:39:20 +00:00
dave
59b626d3ba
huskies: merge 824
2026-04-29 13:42:58 +00:00
dave
11d111360d
huskies: merge 858
2026-04-29 10:47:18 +00:00
dave
0d14fffe1c
huskies: merge 762
2026-04-28 01:31:16 +00:00
dave
4b64bc614f
huskies: merge 726_story_notify_chat_transports_when_oauth_account_swaps_or_all_accounts_are_exhausted
2026-04-27 18:44:47 +00:00
dave
65d2fb210c
huskies: merge 655_bug_matrix_bot_spawns_its_own_timerstore_instead_of_using_shared_appcontext_timer_store
2026-04-27 11:32:51 +00:00
dave
4b089c1ed8
huskies: merge 626_refactor_introduce_services_bundle_and_migrate_appcontext_matrix_transport
2026-04-25 15:08:46 +00:00
dave
271f8ea6a8
huskies: merge 616_story_extract_notifications_service
2026-04-24 18:05:42 +00:00
Timmy and Claude Opus 4.6
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
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 and Claude Opus 4.6
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
Timmy and Claude Opus 4.6
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
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
077288e7b7
storkit: merge 392_refactor_extract_shared_transport_utilities_from_matrix_module_into_chat_submodule
2026-03-25 14:46:02 +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