Skip to content

Hive language: gallery, direct-edit checker, hive_view, live UI and euler_hive - #126

Merged
senamakel merged 377 commits into
mainfrom
hive-language-docs
Oct 11, 2026
Merged

senamakel merged 377 commits into
mainfrom
hive-language-docs

Conversation

@senamakel

@senamakel senamakel commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Summary

This PR makes the hive language (tinyhivemind-lang) something you can read about, look at, edit safely and run live. It also proves the language against two real Project Euler problems.

  • Gallery. Eight example packages live under crates/tinyhivemind-lang/examples/hives/:

    • review-board, research-debate, incident-response, memory-guild and self-improving.
    • math-panel, with 5 seats.
    • math-swarm, with 50 seats on five desks of ten, connected by real cross-desk referral routing. Each seat has a distinct persona.
    • euler-hive, with 14 seats on five desks: research, theory, compute, verify and synthesis. Only research seats may search the web, and only compute and verify seats may run Python.
  • Direct edits with compiler-style checking. Orchestrators edit package files directly.

    • tinyhivemind_lang::check(original, edited) either reports every violated rule as a Diagnostic { file, pointer, rule, message } or returns a Review. The Review names the edit classes touched and records them in lineage.
    • Validation now collects every finding instead of stopping at the first one.
    • The decision is recorded in ADR 0033, which partly supersedes ADR 0032. The spec is docs/specs/hive-language-checking.md.
  • hive_view example. It renders a package as a tree, --mermaid or --json. It can also:

    • run an episode offline, with --run, --frames and --trace;
    • score the math hives and a single seat across seeds with --compare;
    • run live through OpenRouter with --live --model --max-calls.

    Live mode denies web access in three places: in each package's tool deny list, in the request body, which carries no tools, plugins or web-search options, and by refusing model ids that contain online, search, sonar or web. --record writes structure.json and frames.ndjson to the gitignored hive-runs/ folder at the main checkout's root.

  • Live UI in the existing Vite viewer (examples/lab/viewer):

    • a hive gallery;
    • a player with Run, Play, Step, speed and a scrubber;
    • a desk and seat graph with animated referrals;
    • quorum standings, a transcript with tool and memory badges, and a compare view;
    • Recorded runs and a Live now strip. The strip follows any recording that is still being written, including runs started from a terminal, and shows a toast when a new run starts.
  • euler_hive OpenHuman host (examples/openhuman/src/bin/euler_hive*):

    • Every model call goes through OpenRouter.
    • Web search (Parallel, and Gemini with grounding) goes through the TinyHumans SDK.
    • Each seat gets its own CortexDB memory namespace, plus a shared pool for verified findings.
    • run_python runs in a Docker container with no network and nothing mounted.
    • Each desk has its own CompletionDriver, and desks reach each other only through core's referral fold.
    • Budget caps cover spend, model calls, sandbox runs, searches and wall time.
  • OpenHuman bumped to 4739e97284. This includes OpenHuman #7385, which keeps secrets in memory, so embed hosts never touch the OS keychain.

    • The keychain workaround is removed.
    • Uses of the removed RuntimeConfig::runtime_python and ServiceSet::harness_init are dropped.
    • The openhuman, tinytools and tinymemory pins in both manifests now match the vendored submodules.
  • Docs.

    • A full crate overview and real rustdoc for tinyhivemind-lang.
    • The specs now match the code.
    • New READMEs for directories that lacked one.
    • Stale references to the old crate names are fixed.
    • Wiki pages Hive language, Hive language editing and Hive gallery, plus an updated Architecture page, are already pushed to the wiki.
    • Two experiment notes.

Results

Offline, 50 seeds, routed desks. The behaviour parameters were fixed before the first run and never tuned.

package      seats accuracy converged deadlocked exhausted   idle  rounds   turns
single-seat      1    0.640     1.000      0.000     0.000  0.000    2.00    2.00
math-panel       5    0.580     0.720      0.000     0.280  0.000    2.30    8.62
math-swarm      50    0.980     1.000      0.000     0.000  0.000   12.54   84.90

The swarm beats a single seat. The 5-seat panel does not: 28% of panel runs run out of budget after a wrong checker silences the correct advocates. These numbers come from a simulation with seeded per-seat accuracy, not from real models.

Live, hive_view, openai/gpt-oss-120b:nitro.

Run Correct Calls Cost
math-panel yes 6 $0.002
math-swarm, lattice yes 58 $0.019
math-swarm, digit-sum yes — $0.023

Live, euler_hive, google/gemini-3.8-flash. Answers are kept out of this PR and the repo. They are scored against oracles that exist only in the gitignored hive-runs/.

Problem Outcome
PE1014 Correct on both full runs, with 18 and 21 turns. The answer came from the hive's own computation and was never found in a web result.
PE1012 Not solved in four runs. Two committed wrong values. After the verification gates landed, run 4 refused to commit the wrong value and ended no_decision.

All runs together cost about $5.7 on OpenRouter plus $0.6 on search. The runs exposed five host defects, now fixed, each with a regression test:

  • An answer was lost when two referrals to the same desk overlapped.
  • Compute could use up every sandbox run; some are now kept for verify.
  • A verify seat could sign off without running anything; it must now run code that turn before it may support.
  • Synthesis could commit an unverified candidate; it may now commit only one that verify supported.
  • Seats could search for the problem itself; those queries are now refused.

Details are in docs/experiments/2026-10-11-euler-hive-live.md, which has the problem data and answers redacted.

Related issue

None.

API or behavior changes

All of these are additive:

  • tinyhivemind-lang adds check, Diagnostic, Rule and Review for checking direct edits.
  • The validation functions now report every finding.
  • validate_path and validate_namespace are re-exported at the crate root.

The workspace now builds against OpenHuman 4739e97284 and matching tinytools and tinymemory pins.

Not changed: Error::Frontmatter { seat } is also raised for role charters, so its field name is misleading. Renaming it would be a breaking change, so it is left as a follow-up.

Validation

  • cargo fmt --all -- --check: ok.
  • [~] cargo clippy --all-targets --all-features -- -D warnings: the only errors are local rustc 1.96 doc_markdown lints in tinyhivemind-hives, a crate this PR leaves unchanged. CI's Clippy step passes them.
  • cargo build --all-targets --all-features: ok.
  • cargo test --all-features: all pass, run after the OpenHuman bump.
  • .github/scripts/assert-pure.sh: clean. The script itself is unchanged.
  • .github/scripts/assert-openhuman-pin.sh: all six pins match.
  • cargo clippy --manifest-path examples/openhuman/Cargo.toml --all-targets -- -D warnings and cargo test --manifest-path examples/openhuman/Cargo.toml: all pass, including the 32 euler_hive tests.
  • examples/lab/viewer: npm test passes all 75 tests, and the headless tools/hive-check.mjs passes.

Note: CI on main already fails the per-file coverage gate on crates/tinyhivemind-openhuman/src/deploy/test/hook_composition.rs (87%). This PR doesn't touch that file.

The --max-model-calls cap in euler_hive is checked between rounds, so one round can go over it. Spend and wall time remain hard caps. An exact model-call cap needs a hook inside the agent loop, so it is a follow-up; the review thread explains this.

Tests

  • tests/gallery_packages.rs:
    • Every package parses and lowers, with its desks, seats, links and memory bindings.
    • No seat can reach the web except the euler-hive research seats.
    • The swarm has 50 distinct personas.
  • tests/direct_edits.rs: check diagnostics for every rule, the edit classes it infers, and the lineage it records.
  • tests/euler_hive_package.rs.
  • hive_view tests (test = true): the loader, mermaid output, convergence, the frame serde forms, compare, routing, the live provider (capped and never retried), recording names, and the turn budget split.
  • euler_hive: 32 offline tests. They cover the sandbox flags, budgets, referrals, floors, memory, the search guard, and request bodies carrying exactly each seat's allowed tools.
  • Viewer: server, recordings, the live-follow API and the simulation reducer.

Documentation

  • Wiki: Hive-language, Hive-language-editing, Hive-gallery, Architecture, _Sidebar and Home.
  • Specs: docs/specs/hive-language.md, hive-language-checking.md and openhuman-hive-config.md.
  • docs/adr/0033.
  • Experiment notes: docs/experiments/2026-10-11-math-hive-scale.md and 2026-10-11-euler-hive-live.md.
  • READMEs for the crate, the examples, the gallery packages, hive_view, euler_hive and the viewer.
  • ADRs and dated experiment write-ups keep the old crate names on purpose, as historical records.

Checklist

  • Tests, docs and examples are updated in the same change.
  • No new #[allow(...)] or #[ignore], and no relaxed lints.
  • No secrets, tokens, .env contents or Project Euler answers in the diff or the description. .env.example holds placeholders only.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-11T13:33:19.753293Z 9790c84 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 397 files, which is 297 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 1297ce2f-4809-44cc-be52-3fab1ec87ae7

📥 Commits

Reviewing files that changed from the base of the PR and between e68a560 and 9790c84.


⛔ Files ignored due to path filters (1)
  • examples/openhuman/Cargo.lock is excluded by !**/*.lock

📒 Files selected for processing (397)
  • .env.example
  • .gitignore
  • AGENTS.md
  • README.md
  • ROADMAP.md
  • crates/tinyhivemind-core/examples/bench/README.md
  • crates/tinyhivemind-core/examples/bench/arms.rs
  • crates/tinyhivemind-core/examples/bench/cli/README.md
  • crates/tinyhivemind-core/examples/bench/horizon/README.md
  • crates/tinyhivemind-core/examples/bench/live_swarm/README.md
  • crates/tinyhivemind-core/examples/bench/main.rs
  • crates/tinyhivemind-core/examples/bench/parallel/README.md
  • crates/tinyhivemind-core/examples/bench/scenario/README.md
  • crates/tinyhivemind-core/examples/bench/swarm/format/README.md
  • crates/tinyhivemind-core/examples/bench/variety/README.md
  • crates/tinyhivemind-core/examples/driver_bench/README.md
  • crates/tinyhivemind-core/src/aside/README.md
  • crates/tinyhivemind-core/src/driver/conduct/test/README.md
  • crates/tinyhivemind-core/src/driver/engine/brief/README.md
  • crates/tinyhivemind-core/src/hive/exchange/README.md
  • crates/tinyhivemind-core/src/runtime/README.md
  • crates/tinyhivemind-core/src/runtime/error/README.md
  • crates/tinyhivemind-core/tests/migrated_runtime/README.md
  • crates/tinyhivemind-hives/src/error.rs
  • crates/tinyhivemind-hives/src/lib.rs
  • crates/tinyhivemind-hives/src/storage/sqlite.rs
  • crates/tinyhivemind-hives/src/storage/sqlite_test.rs
  • crates/tinyhivemind-lang/Cargo.toml
  • crates/tinyhivemind-lang/README.md
  • crates/tinyhivemind-lang/examples/README.md
  • crates/tinyhivemind-lang/examples/hive_check/README.md
  • crates/tinyhivemind-lang/examples/hive_check/main.rs
  • crates/tinyhivemind-lang/examples/hive_check/test.rs
  • crates/tinyhivemind-lang/examples/hive_view/README.md
  • crates/tinyhivemind-lang/examples/hive_view/compare.rs
  • crates/tinyhivemind-lang/examples/hive_view/desks.rs
  • crates/tinyhivemind-lang/examples/hive_view/episode.rs
  • crates/tinyhivemind-lang/examples/hive_view/frames.rs
  • crates/tinyhivemind-lang/examples/hive_view/halt.rs
  • crates/tinyhivemind-lang/examples/hive_view/hive.rs
  • crates/tinyhivemind-lang/examples/hive_view/live/README.md
  • crates/tinyhivemind-lang/examples/hive_view/live/mod.rs
  • crates/tinyhivemind-lang/examples/hive_view/live/prompt.rs
  • crates/tinyhivemind-lang/examples/hive_view/live/provider.rs
  • crates/tinyhivemind-lang/examples/hive_view/load.rs
  • crates/tinyhivemind-lang/examples/hive_view/main.rs
  • crates/tinyhivemind-lang/examples/hive_view/math.rs
  • crates/tinyhivemind-lang/examples/hive_view/output.rs
  • crates/tinyhivemind-lang/examples/hive_view/render.rs
  • crates/tinyhivemind-lang/examples/hive_view/rng.rs
  • crates/tinyhivemind-lang/examples/hive_view/run.rs
  • crates/tinyhivemind-lang/examples/hive_view/script.rs
  • crates/tinyhivemind-lang/examples/hive_view/sim.rs
  • crates/tinyhivemind-lang/examples/hive_view/structure.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/README.md
  • crates/tinyhivemind-lang/examples/hive_view/test/args.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/compare.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/live.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/mod.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/packages.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/record.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/routing.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/runs.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/support.rs
  • crates/tinyhivemind-lang/examples/hive_view/test/wire.rs
  • crates/tinyhivemind-lang/examples/hives/README.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/README.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/constitution.json
  • crates/tinyhivemind-lang/examples/hives/euler-hive/context/problem.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/hive.json
  • crates/tinyhivemind-lang/examples/hives/euler-hive/memory.json
  • crates/tinyhivemind-lang/examples/hives/euler-hive/roles/computer.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/roles/researcher.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/roles/synthesizer.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/roles/theorist.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/roles/verifier.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/compute-exhaustive.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/compute-linear.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/compute-minimalist.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/research-librarian.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/research-provenance.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/research-scout.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/synthesis-dissent.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/synthesis-judge.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/theory-coder.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/theory-counter.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/theory-designer.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/verify-adversary.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/verify-constraints.md
  • crates/tinyhivemind-lang/examples/hives/euler-hive/seats/verify-rederiver.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/README.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/constitution.json
  • crates/tinyhivemind-lang/examples/hives/incident-response/hive.json
  • crates/tinyhivemind-lang/examples/hives/incident-response/memory.json
  • crates/tinyhivemind-lang/examples/hives/incident-response/roles/README.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/roles/fixer.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/roles/incident-lead.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/roles/release-reviewer.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/roles/triager.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/seats/README.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/seats/fixer-db.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/seats/fixer-net.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/seats/incident-lead.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/seats/release-reviewer.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/seats/triager-logs.md
  • crates/tinyhivemind-lang/examples/hives/incident-response/seats/triager-metrics.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/README.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/constitution.json
  • crates/tinyhivemind-lang/examples/hives/math-panel/hive.json
  • crates/tinyhivemind-lang/examples/hives/math-panel/memory.json
  • crates/tinyhivemind-lang/examples/hives/math-panel/roles/README.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/roles/checker.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/roles/conjecturer.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/roles/lead.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/roles/solver.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/seats/README.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/seats/checker.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/seats/conjecturer.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/seats/lead.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/seats/solver-a.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/seats/solver-b.md
  • crates/tinyhivemind-lang/examples/hives/math-panel/sim.json
  • crates/tinyhivemind-lang/examples/hives/math-swarm/README.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/constitution.json
  • crates/tinyhivemind-lang/examples/hives/math-swarm/hive.json
  • crates/tinyhivemind-lang/examples/hives/math-swarm/memory.json
  • crates/tinyhivemind-lang/examples/hives/math-swarm/roles/README.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/roles/computer.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/roles/conjecturer.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/roles/prover.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/roles/synthesizer.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/roles/verifier.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/README.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-01.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-02.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-03.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-04.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-05.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-06.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-07.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-08.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-09.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/compute-10.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-01.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-02.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-03.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-04.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-05.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-06.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-07.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-08.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-09.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/conjecture-10.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-01.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-02.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-03.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-04.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-05.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-06.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-07.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-08.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-09.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/prove-10.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-01.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-02.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-03.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-04.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-05.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-06.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-07.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-08.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-09.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/synthesis-10.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-01.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-02.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-03.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-04.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-05.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-06.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-07.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-08.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-09.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/seats/verify-10.md
  • crates/tinyhivemind-lang/examples/hives/math-swarm/sim.json
  • crates/tinyhivemind-lang/examples/hives/memory-guild/README.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/constitution.json
  • crates/tinyhivemind-lang/examples/hives/memory-guild/hive.json
  • crates/tinyhivemind-lang/examples/hives/memory-guild/memory.json
  • crates/tinyhivemind-lang/examples/hives/memory-guild/roles/README.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/roles/archivist.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/roles/scout.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/roles/scribe.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/seats/README.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/seats/archivist.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/seats/scout-a.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/seats/scout-b.md
  • crates/tinyhivemind-lang/examples/hives/memory-guild/seats/scribe.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/README.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/constitution.json
  • crates/tinyhivemind-lang/examples/hives/research-debate/context/brief.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/hive.json
  • crates/tinyhivemind-lang/examples/hives/research-debate/memory.json
  • crates/tinyhivemind-lang/examples/hives/research-debate/roles/README.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/roles/advocate.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/roles/librarian.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/roles/moderator.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/roles/skeptic.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/seats/README.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/seats/advocate.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/seats/librarian.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/seats/moderator.md
  • crates/tinyhivemind-lang/examples/hives/research-debate/seats/skeptic.md
  • crates/tinyhivemind-lang/examples/hives/review-board/README.md
  • crates/tinyhivemind-lang/examples/hives/review-board/constitution.json
  • crates/tinyhivemind-lang/examples/hives/review-board/hive.json
  • crates/tinyhivemind-lang/examples/hives/review-board/memory.json
  • crates/tinyhivemind-lang/examples/hives/review-board/roles/README.md
  • crates/tinyhivemind-lang/examples/hives/review-board/roles/author.md
  • crates/tinyhivemind-lang/examples/hives/review-board/roles/reviewer.md
  • crates/tinyhivemind-lang/examples/hives/review-board/script.json
  • crates/tinyhivemind-lang/examples/hives/review-board/seats/README.md
  • crates/tinyhivemind-lang/examples/hives/review-board/seats/author.md
  • crates/tinyhivemind-lang/examples/hives/review-board/seats/reviewer-a.md
  • crates/tinyhivemind-lang/examples/hives/review-board/seats/reviewer-b.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/README.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/constitution.json
  • crates/tinyhivemind-lang/examples/hives/self-improving/context/playbook.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/hive.json
  • crates/tinyhivemind-lang/examples/hives/self-improving/memory.json
  • crates/tinyhivemind-lang/examples/hives/self-improving/roles/README.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/roles/critic.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/roles/editor.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/roles/solver.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/seats/README.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/seats/critic.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/seats/editor.md
  • crates/tinyhivemind-lang/examples/hives/self-improving/seats/solver.md
  • crates/tinyhivemind-lang/examples/live_self_edit.rs
  • crates/tinyhivemind-lang/examples/self_edit.rs
  • crates/tinyhivemind-lang/examples/self_edit/README.md
  • crates/tinyhivemind-lang/examples/self_edit/test.rs
  • crates/tinyhivemind-lang/src/README.md
  • crates/tinyhivemind-lang/src/check/README.md
  • crates/tinyhivemind-lang/src/check/mod.rs
  • crates/tinyhivemind-lang/src/check/rules.rs
  • crates/tinyhivemind-lang/src/check/test/README.md
  • crates/tinyhivemind-lang/src/check/test/files.rs
  • crates/tinyhivemind-lang/src/check/test/guards.rs
  • crates/tinyhivemind-lang/src/check/test/locations.rs
  • crates/tinyhivemind-lang/src/check/test/mod.rs
  • crates/tinyhivemind-lang/src/check/test/sequence.rs
  • crates/tinyhivemind-lang/src/check/test/support.rs
  • crates/tinyhivemind-lang/src/check/types.rs
  • crates/tinyhivemind-lang/src/diagnostic/README.md
  • crates/tinyhivemind-lang/src/diagnostic/mod.rs
  • crates/tinyhivemind-lang/src/diagnostic/test.rs
  • crates/tinyhivemind-lang/src/diagnostic/types.rs
  • crates/tinyhivemind-lang/src/document/README.md
  • crates/tinyhivemind-lang/src/document/mod.rs
  • crates/tinyhivemind-lang/src/document/test.rs
  • crates/tinyhivemind-lang/src/document/types.rs
  • crates/tinyhivemind-lang/src/lib.rs
  • crates/tinyhivemind-lang/src/lowering/README.md
  • crates/tinyhivemind-lang/src/lowering/types.rs
  • crates/tinyhivemind-lang/src/memory/README.md
  • crates/tinyhivemind-lang/src/memory/mod.rs
  • crates/tinyhivemind-lang/src/memory/types.rs
  • crates/tinyhivemind-lang/src/patch/README.md
  • crates/tinyhivemind-lang/src/patch/derive.rs
  • crates/tinyhivemind-lang/src/patch/mod.rs
  • crates/tinyhivemind-lang/src/patch/test.rs
  • crates/tinyhivemind-lang/src/validation/README.md
  • crates/tinyhivemind-lang/src/validation/bounds.rs
  • crates/tinyhivemind-lang/src/validation/memory.rs
  • crates/tinyhivemind-lang/src/validation/mod.rs
  • crates/tinyhivemind-lang/src/validation/test/README.md
  • crates/tinyhivemind-lang/src/validation/test/locations.rs
  • crates/tinyhivemind-lang/src/validation/test/mod.rs
  • crates/tinyhivemind-lang/src/validation/test/rules.rs
  • crates/tinyhivemind-lang/tests/README.md
  • crates/tinyhivemind-lang/tests/direct_edits.rs
  • crates/tinyhivemind-lang/tests/euler_hive_package.rs
  • crates/tinyhivemind-lang/tests/gallery_packages.rs
  • crates/tinyhivemind-openhuman/examples/live_language.rs
  • crates/tinyhivemind-openhuman/src/deploy/test/cancellation.rs
  • crates/tinyhivemind-openhuman/src/deploy/test/construction.rs
  • crates/tinyhivemind-openhuman/src/deploy/test/profile.rs
  • crates/tinyhivemind-openhuman/src/host/hooks_test.rs
  • crates/tinyhivemind-openhuman/src/host/types.rs
  • docs/adr/0032-hive-language-owns-the-wire-format.md
  • docs/adr/0033-editors-write-files-and-the-crate-checks-them.md
  • docs/adr/README.md
  • docs/experiments/2026-10-11-euler-hive-live.md
  • docs/experiments/2026-10-11-math-hive-scale.md
  • docs/experiments/README.md
  • docs/plans/README.md
  • docs/plans/a-real-provider-layer.md
  • docs/plans/fold-by-size.md
  • docs/plans/hive-mind.md
  • docs/plans/jev-first-routing.md
  • docs/plans/jev-integration.md
  • docs/plans/mention-dispatch.md
  • docs/plans/off-floor-exchange.md
  • docs/plans/promote-the-utterance-surface.md
  • docs/plans/sessions.md
  • docs/research/biology.md
  • docs/research/grok-bots/catalogs-and-bloks.md
  • docs/research/grok-bots/gojiberryai-sales-os.md
  • docs/research/grok-bots/orange-book.md
  • docs/research/grok-bots/rakazo.md
  • docs/research/grok-bots/reconstructed-018.md
  • docs/specs/README.md
  • docs/specs/approval.md
  • docs/specs/cross-desk-referral.md
  • docs/specs/hive-language-checking.md
  • docs/specs/hive-language.md
  • docs/specs/openhuman-hive-config.md
  • docs/specs/the-utterance-surface.md
  • docs/testing.md
  • examples/README.md
  • examples/lab/.gitignore
  • examples/lab/README.md
  • examples/lab/viewer/README.md
  • examples/lab/viewer/index.html
  • examples/lab/viewer/package.json
  • examples/lab/viewer/public/fixtures/hives/compare.ndjson
  • examples/lab/viewer/public/fixtures/hives/math-swarm.frames.ndjson
  • examples/lab/viewer/public/fixtures/hives/math-swarm.json
  • examples/lab/viewer/public/fixtures/hives/review-board.frames.ndjson
  • examples/lab/viewer/public/fixtures/hives/review-board.json
  • examples/lab/viewer/public/fixtures/recordings/coin-panel-seed1-1790000000000/frames.ndjson
  • examples/lab/viewer/public/fixtures/recordings/coin-panel-seed1-1790000000000/structure.json
  • examples/lab/viewer/server/hive-api.js
  • examples/lab/viewer/server/hives.js
  • examples/lab/viewer/server/hives.test.js
  • examples/lab/viewer/server/plugin.js
  • examples/lab/viewer/server/recordings-api.js
  • examples/lab/viewer/server/recordings.js
  • examples/lab/viewer/server/recordings.test.js
  • examples/lab/viewer/src/hive/README.md
  • examples/lab/viewer/src/hive/activity.js
  • examples/lab/viewer/src/hive/activity.test.js
  • examples/lab/viewer/src/hive/api.js
  • examples/lab/viewer/src/hive/banner.js
  • examples/lab/viewer/src/hive/compare.js
  • examples/lab/viewer/src/hive/compare.test.js
  • examples/lab/viewer/src/hive/controls.js
  • examples/lab/viewer/src/hive/dom.js
  • examples/lab/viewer/src/hive/gallery.js
  • examples/lab/viewer/src/hive/graph.js
  • examples/lab/viewer/src/hive/hive.css
  • examples/lab/viewer/src/hive/index.js
  • examples/lab/viewer/src/hive/layout.js
  • examples/lab/viewer/src/hive/player.js
  • examples/lab/viewer/src/hive/player.test.js
  • examples/lab/viewer/src/hive/recordings.js
  • examples/lab/viewer/src/hive/referrals.js
  • examples/lab/viewer/src/hive/simulation.js
  • examples/lab/viewer/src/hive/simulation.test.js
  • examples/lab/viewer/src/hive/standings.js
  • examples/lab/viewer/src/hive/stream.js
  • examples/lab/viewer/src/hive/transcript.js
  • examples/lab/viewer/src/panel.js
  • examples/lab/viewer/tools/fake-frames.mjs
  • examples/lab/viewer/tools/fake-hive-view.mjs
  • examples/lab/viewer/tools/hive-check.mjs
  • examples/openhuman/Cargo.toml
  • examples/openhuman/README.md
  • examples/openhuman/src/bin/README.md
  • examples/openhuman/src/bin/euler_hive.rs
  • examples/openhuman/src/bin/euler_hive/README.md
  • examples/openhuman/src/bin/euler_hive/agents.rs
  • examples/openhuman/src/bin/euler_hive/artifacts.rs
  • examples/openhuman/src/bin/euler_hive/budget.rs
  • examples/openhuman/src/bin/euler_hive/floors.rs
  • examples/openhuman/src/bin/euler_hive/frames.rs
  • examples/openhuman/src/bin/euler_hive/memory.rs
  • examples/openhuman/src/bin/euler_hive/package.rs
  • examples/openhuman/src/bin/euler_hive/referrals.rs
  • examples/openhuman/src/bin/euler_hive/report.rs
  • examples/openhuman/src/bin/euler_hive/request_test.rs
  • examples/openhuman/src/bin/euler_hive/router.rs
  • examples/openhuman/src/bin/euler_hive/sandbox.rs
  • examples/openhuman/src/bin/euler_hive/search.rs
  • examples/openhuman/src/bin/euler_hive/test/README.md
  • examples/openhuman/src/bin/euler_hive/test/artifacts.rs
  • examples/openhuman/src/bin/euler_hive/test/federation.rs
  • examples/openhuman/src/bin/euler_hive/test/memory.rs
  • examples/openhuman/src/bin/euler_hive/test/mod.rs
  • examples/openhuman/src/bin/euler_hive/test/package.rs
  • examples/openhuman/src/bin/euler_hive/test/remember.rs
  • examples/openhuman/src/bin/euler_hive/test/routing.rs
  • examples/openhuman/src/bin/euler_hive/test/sandbox.rs
  • examples/openhuman/src/bin/euler_hive/test/support.rs
  • examples/openhuman/src/bin/euler_hive/tools.rs
  • examples/openhuman/src/bin/euler_hive/turn.rs
  • wiki

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5bc5564617

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread examples/lab/viewer/server/hives.js Outdated
Comment thread crates/tinyhivemind-lang/examples/hive_view/desks.rs
senamakel and others added 2 commits October 11, 2026 13:13
The hive_view example now streams frames from a live provider instead of
only using static data, so the demo can show real-time updates. A new
provider module wires the live source into the existing frame loop.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add live prompt and provider panels to the hive view example so the
routing demo can show how prompts and providers are wired together at
runtime. The output and routing test files are updated to exercise the
new views.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@tinysweeper

tinysweeper Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

⚠️ Review failed for 9790c84a3a7d. the review of #126 did not finish within 900s

senamakel and others added 24 commits October 11, 2026 13:14
The referral decision logic in route is now a separate decide method that
returns the decision and intended desk, or None when the line addresses no
other desk. The record kind is also derived from the sent status and
referral kind rather than only overriding returns.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add an example that renders the hive view output and document the
corresponding language checking behaviour in the spec.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reorganize the diagnostic type definitions to improve clarity and
maintainability without changing any behaviour.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reorganize the diagnostic module to improve code clarity and
maintainability without changing any behaviour.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reorganize the validation module to improve clarity and make the
validation logic easier to extend. No behaviour change is intended.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Bounds checks now report an error when a value falls outside the
permitted range rather than silently clamping it to the nearest limit.
Clamping hid misconfigured inputs from callers, so the validation now
surfaces them.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Memory validation now reports an error when a memory reference names a
variable that is not defined, instead of silently accepting it. This
catches typos and stale references at validation time rather than letting
them fail later at runtime.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The Hive struct and desk_policy helper were extracted from the desks
example into a new hive module, and the validation identity calls were
reformatted to satisfy rustfmt. No behaviour changes.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The document module was no longer referenced anywhere in the crate, so it
has been dropped to keep the source tree free of dead code.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The document module was no longer referenced anywhere in the crate, so it has been dropped to keep the source tree free of dead code.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Reworked the derive patch implementation to reduce duplication and make the control flow easier to follow. Behaviour is unchanged.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…on is empty, and the stat is bl

Could you paste the diff (or at least the stat and a summary of the change)? Once I can see the `+`/`-` lines I'll write the Conventional Commits message.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add a README explaining the hive view example and how to run it, and
extend the structure example so the documented behaviour matches what the
code actually does.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds package fixtures used by the hive_view example tests so the
example can exercise package handling without relying on external
data.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Move the type checking logic out of the monolithic checker into its own
module so the code is easier to navigate and extend. Behaviour is
unchanged.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The hive simulation now models referral links between agents, and the fake
hive view exposes them so the viewer can render referral relationships. Tests
cover the new referral behaviour.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Empty list literals were rejected during type checking because the
element type could not be inferred from an empty sequence. They are now
accepted, deferring element type resolution until the list is used.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Adds a small script under the lab viewer tools that inspects the Hive
state for the example, giving a quick way to verify the viewer's data
without opening the UI.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Drop the stale module declaration from the language crate's module tree since nothing references it anymore.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add public check and diagnostic modules and re-export their types, including Review, Diagnostic, Rule, and the check, check_packages, and diagnose functions, so callers can run review checks and inspect diagnostics directly.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The read-only memory check now collects a memory's bindings through a shared
helper instead of a closure defined inline, and compares them by reference
rather than cloning into temporary vectors. The unused body_offset re-export
in the patch module was dropped.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…refused

Add a Checked type alias and an accepted helper that unwraps a review or
renders its diagnostics as the test failure, then route the success-path
assertions through it. Previously a refusal in these tests surfaced only
as a bare error, hiding which rule fired.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
senamakel and others added 12 commits October 11, 2026 18:36
Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Document the euler_hive test binary so its purpose and usage are clear to anyone browsing the examples directory.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The README described recordings as active within 10 minutes of their last change, but the viewer now uses a 20 minute window, so the documented threshold and the idle cutoff for streaming were corrected to match.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the vendored openhuman submodule to the latest commit.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Pin tinychannels-bus and tinychannels-runtime back to 0.1.17 in the lockfile, reverting the 0.1.18 bump.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Merging main left Cargo.toml pinning 467ab703 while the gitlink stayed at 4739e97284.

Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the locked versions of tinychannels-bus and tinychannels-runtime to 0.1.18 to match the new release.

Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 133b215ee3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread examples/openhuman/src/bin/euler_hive.rs
Comment thread examples/openhuman/src/bin/euler_hive/package.rs Outdated
Comment thread examples/openhuman/src/bin/euler_hive/tools.rs
Comment thread examples/openhuman/src/bin/euler_hive/report.rs Outdated
Comment thread crates/tinyhivemind-lang/examples/hive_view/desks.rs
senamakel and others added 5 commits October 11, 2026 18:45
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d72e35ea3f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +378 to +390
run.frame(&Frame::Start {
package: lowered.id.clone(),
seed: 0,
seats: lowered.seats.len(),
problem: Some(ProblemFrame {
id: args.problem_id.clone(),
statement: statement.clone(),
answer: None,
}),
live: Some(true),
model: Some(args.model.clone()),
limits: serde_json::to_value(args.limits)?,
});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Check initial recording writes before starting turns

When package.json or the start frame cannot be written—for example because the recording filesystem fills after RunDir::create succeeds—these calls only record the failure, and the first paid round still runs because run.check() is not reached until after that round. Fresh evidence beyond the prior per-round fix is that these initial writes remain unchecked before entering the execution loop; call run.check()? before opening the federation so a run with no durable start record issues no model calls.

AGENTS.md reference: AGENTS.md:L85-L87

Useful? React with 👍 / 👎.

Comment on lines +405 to +407
if let Ok(usage) = budget::openrouter_usage(&http, &openrouter_key).await {
budget.record_account(usage);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Bound usage polling by the remaining wall-clock budget

When less than the HTTP client's 20-second timeout remains and the OpenRouter usage endpoint is slow, this await occurs before admit_round checks the elapsed time, so --max-wall-seconds can be exceeded by the polling request even though no turn is admitted. Apply the remaining global deadline to this request, or check admission before awaiting it.

Useful? React with 👍 / 👎.

Comment on lines +170 to +172
} finally {
if (runAbort === ctl) player.finish();
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clear the completed run controller

After a run finishes normally, this leaves runAbort pointing at its controller. While the same package remains open, ownRun therefore classifies every later recording for that package whose timestamp is newer than the old run as belonging to this page, so externally started live runs are permanently filtered out of auto-follow and toast notifications. Clear runAbort when this controller completes after finishing the player.

Useful? React with 👍 / 👎.

senamakel and others added 6 commits October 11, 2026 18:57
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@senamakel

Copy link
Copy Markdown
Member Author

Latest pushed head: 9790c84a3a7de0fde1f1bbc17e6619fd88ce49c3.

Merged upstream main (e68a5603) into this PR, resolving manifest and lockfile conflicts without rewriting history. Preserved the concurrently authored regression fixes.

Fixed the paid-run local/origin gate, bounded custom math and referral turns, reserved model-loop capacity before launch, preserved superscript/subscript statement meaning, refused provider web models, required a current check for verified publication, and bounded closing memory reads. Runtime fixture tests are serialized because OpenHuman permits one runtime per process.

Validation so far: root formatting, Clippy, build and all-feature tests passed; rustdoc passed; 78 viewer tests passed; all 44 Euler-host tests passed. Each newly fixed behavior had a failing regression before the fix. Full standalone workspace tests/Clippy and per-file coverage are running. Hosted checks on this new head are pending.

Next: finish validation, reply to validated findings in their original threads, and keep following checks and new feedback until green and clean. The PR remains open.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9790c84a3a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

export const WATCH_MS = 1000;

/** What changes when a recording appears, grows, goes quiet or ends. */
export const listingSignature = (list) => list.map((r) => `${r.id}:${r.size}:${r.mtime}:${r.live}:${r.ended}`).join("|");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include active state in the recording signature

When an unfinished recording remains unchanged, live flips to false after 30 seconds and active flips to false after 20 minutes, but this signature omits active. After the first transition is broadcast, the later scan has the same signature, so connected clients retain active: true and keep the crashed run in the “Live now” strip as QUIET indefinitely until an unrelated recording changes.

Useful? React with 👍 / 👎.

Comment on lines +233 to +237
let page = self.engine.list(ListRequest::new(filter, 50)).await?;
let mut hits: Vec<_> = page
.items
.into_iter()
.filter(|hit| hit.meta.agent_id.as_deref() != Some(self.binding.agent_id.as_str()))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Page past self-authored notes during rejoin

When a seat has at least 50 of its own newer entries in a shared reach such as the verified pool, this fetch limits the page before filtering out that seat's entries. Peer notes beyond that first page are omitted, yet the successful recall advances seen to the read's start time, so those older peer notes are permanently skipped on later rejoins; paginate until enough non-self entries are collected or exclude the current agent in the query.

Useful? React with 👍 / 👎.

@senamakel
senamakel merged commit b822ac1 into main Oct 11, 2026
9 checks passed
senamakel added a commit that referenced this pull request Oct 11, 2026
Finish euler_hive and viewer review follow-ups from #126
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant