Commit graph

2,436 commits

Author SHA1 Message Date
müde
58e86a3adf refactor(hive-c0re): shrink dashboard mod root
convert to dashboard/mod.rs; state snapshot, meta inputs, tombstones,
and misc api handlers move to their own files
2026-07-06 21:05:52 +02:00
müde
3ee87d394c refactor(hive-c0re): split lifecycle into submodules
mod.rs keeps the container verbs + priv_run plumbing; git helpers,
repo/dir setup, and host drop-in config move to their own files
2026-07-06 21:05:52 +02:00
müde
9e7af3b6bf refactor(hive-c0re): split socket_server into submodules
mod.rs keeps dispatch + messaging/guards; schedules, reminders,
config approvals, and lifecycle handlers move to their own files
2026-07-06 21:05:52 +02:00
müde
380c6ad47f refactor(hive-c0re): shared sqlite open helper with busy timeout
one db::open owns the parent-dir + connection + busy_timeout dance for
every host-side store (broker/approvals/questions/schedules/power in
broker.sqlite, build_logs, audit_log); schema + migrations stay per
store. same-file connections now wait out concurrent writers instead
of risking SQLITE_BUSY.
2026-07-06 20:46:57 +02:00
müde
604e1c2557 docs: job-DAG queue model; fold agent_power table into broker.sqlite
coordinator.md rewrites the queue section (node inventory, DAG shapes,
resources, desired-state reconciliation, boot reconcile); approvals.md
+ persistence.md + hivectl --graceful help updated to match. agent_power
lives in broker.sqlite like approvals/questions (own connection + busy
timeout) instead of a separate db file.
2026-07-06 20:36:57 +02:00
müde
8349e6f621 feat(dashboard): node-aware queue render + buildSlots option
each queue card now shows its DAG's node chain (per-node state, step,
build-log link), fixing 'queue jumps don't show on the dashboard'.
live-log panel keys off the running node's log. new
services.hyperhive.c0re.buildSlots option (default 1) threads the
concurrent nix-build count into serve.json.
2026-07-06 20:36:57 +02:00
müde
7946e03fde feat(hive-c0re): replace rebuild queue with generic job-DAG queue
jobs are now DAGs of primitive nodes (prebuild, stop-for-update, swap,
reconcile, signal, drain, ...) driven by one scheduler with N build
slots + per-agent lifecycle leases. per-agent power intent (wanted
up/offline) is durable in agent_power.sqlite; Reconcile nodes converge
observed state to it. kills the graceful-stop watcher thread, the
deferred-start follow-up, and the cascade pre-enqueue (fan-out on
MetaLock completion instead). tracker: #2166
2026-07-06 20:36:57 +02:00
müde
79a3993def commit the lock file agents forgot about manually like an animal 2026-07-06 19:57:53 +02:00
müde
50d801b6c9 fix(hive-claude): don't scan model-authored assistant/user content for CLI failure markers 2026-07-06 00:15:42 +02:00
müde
25540755f4 fix(hive-claude): match session by parsed top-level customTitle, not transcript substring 2026-07-06 00:09:36 +02:00
müde
8a78b8a464 docs(agent): clarify cred-file set + settings doc pointer, fix forge_notify cross-ref 2026-07-06 00:03:43 +02:00
müde
b4f54a194b fix(agent): don't eat /compact flag on failed turn; restore ctx fallback; requeue on SessionNotFound 2026-07-06 00:01:15 +02:00
müde
dd51d02bc2 fix(hive-claude): report Progress.created on first-turn overflow, compacted only when compact succeeded 2026-07-05 23:42:57 +02:00
müde
216eb8ae9b docs(turn-loop): split into index + claude-invocation/config/mcp sub-pages, condense the loop 2026-07-05 23:04:48 +02:00
müde
746f518250 fix(agent): show Compacting state during in-flight operator /compact 2026-07-05 22:54:20 +02:00
müde
59dd7955aa fix(stats): last_usage orders by id (insertion order); clarify Window default 2026-07-05 22:53:16 +02:00
müde
f2f104627d refactor(agent): drop vestigial install_configured param, non_empty_env helper, explicit infallible expect in client 2026-07-05 22:49:45 +02:00
müde
9cebc128e2 refactor(web_ui): Bus::effective_context_window, sigint_claude + per-connection hello, relocate fetch_reminder_stats, drop redundant guard 2026-07-05 22:47:14 +02:00
müde
77f31b44bb refactor(agent): fire_and_forget helper, drop dead default_model + compact_percent fallback, fix stale comment 2026-07-05 22:43:23 +02:00
müde
9721be7bc3 docs(turn_stats): mark unread columns as forward-capture, not consumed 2026-07-05 22:39:45 +02:00
müde
f490e07509 refactor(prompt): drop unreachable role-block defensive branches; keep marker grammar 2026-07-05 22:36:10 +02:00
müde
20ff891962 refactor(forge_notify): share render_body_excerpt across formatters; fix nits + docs 2026-07-05 22:32:00 +02:00
müde
dd7f8c5ebb docs(turn-loop): document PromptTooLong archive+requeue, TurnOutcome=Result, credential-file session detection 2026-07-05 22:27:09 +02:00
müde
90af3e8d0b refactor(mcp): split claude launch-config layer into mcp_config.rs 2026-07-05 22:24:46 +02:00
müde
e1e3bda94a style: apply nix fmt 2026-07-05 22:24:42 +02:00
müde
9a0d525fdf refactor(mcp): drop vestigial SocketReply, match hive_sh4re::Response directly; remove dead code 2026-07-05 22:12:45 +02:00
müde
543177ed74 refactor(mcp): collapse repeated failure-arm triplet into reply_err helper 2026-07-05 22:05:06 +02:00
müde
785a36b907 refactor(web_ui): share one broker_request helper; /send timeout now 409 not 500 2026-07-05 21:55:28 +02:00
müde
d83d03e4c0 fix(agent): key session detection off credential filenames; own clear_session in login.rs 2026-07-05 21:48:56 +02:00
müde
d004fdc0eb fix(stats): set busy_timeout on agent snapshot reader so a concurrent write can't blank the page 2026-07-05 21:43:25 +02:00
müde
2b5edef4d1 fix(agent): recover PromptTooLong via archive+requeue; model TurnOutcome as Result 2026-07-05 21:42:13 +02:00
müde
cba3726389 remove redundant todo md 2026-07-05 20:56:15 +02:00
müde
4a404c1128 docs: describe hive-claude split, InfiniteSession, deferred compact, web_ui dir 2026-07-05 20:53:56 +02:00
müde
7c851c5dd3 fix(web_ui): cap bind_with_retry at 12 attempts, then return AddrInUse 2026-07-05 20:41:37 +02:00
müde
bdfeac80a7 refactor(web_ui): split into a module dir by concern, serve stays in mod.rs 2026-07-05 20:40:07 +02:00
müde
efaf56c2d5 refactor(agent): remove vestigial turn_lock (serve loop is single-driver) 2026-07-05 20:26:04 +02:00
müde
66f5b8720d refactor(agent): use hive_claude::TokenUsage directly, drop the duplicate 2026-07-05 20:21:33 +02:00
müde
c9de2eeb97 refactor(agent): build the InfiniteSession once in the serve loop, thread it 2026-07-05 20:16:06 +02:00
müde
f6977a961a perf(hive-claude): match rate-limit markers on raw line, drop re-serialize 2026-07-05 20:09:11 +02:00
müde
487e62a9ca feat(hive-claude): parse turn telemetry in the lib, return it from run 2026-07-05 20:06:30 +02:00
müde
faa7f982af feat(web_ui): defer operator /compact to turn end, run when idle too 2026-07-05 19:49:00 +02:00
müde
80d819e444 feat(hive-claude): add InfiniteSession (name+store+compaction policy) 2026-07-05 19:38:16 +02:00
müde
bf93a81e1d refactor(agent): move login-wait into login.rs, dedupe env resolvers 2026-07-05 19:08:48 +02:00
müde
a3b66241d1 refactor(agent): extract claude driver into hive-claude crate 2026-07-05 18:50:12 +02:00
müde
e35acca814 fix(agent): pin claude session by constant title, archive on reset 2026-07-05 18:13:54 +02:00
iris
6528a90233 fix(web_ui): drop stale (max) suffix from xhigh effort label
xhigh and max are distinct reasoning-effort levels (see EFFORT_LEVELS
in events.rs); labelling xhigh as '(max)' implied they were the same
level, per issue #2258.
2026-07-05 12:50:20 +02:00
damocles
788673341c refactor(term): add mutableRow to terminal api, use it for thinking_tokens 2026-07-05 12:39:26 +02:00
damocles
dc63bfcb23 fix(term): store text node ref for thinking_tokens, drop DOM dance 2026-07-05 12:20:37 +02:00
damocles
758f5ae5a8 fix(term): flex layout for details summary, fix thinking brain icon column 2026-07-05 12:10:24 +02:00
damocles
6d2e56e7c8 fix formatting (treefmt) 2026-07-05 12:00:18 +02:00