Repository navigation
release: quorus-ai 0.6.5 - #17
Merged
Merged
Conversation
resolve_config_dir() returned the import-time ~/.quorus, so a HOME faked after import (tests, wrappers) was ignored and a quorus join test wrote a config into the process's real HOME. A monkeypatched DEFAULT_CONFIG_DIR still wins; otherwise Path.home() is read now. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 084bd2f7e9e553156a04d9573cc70973990f858e)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 64e5c8724cdb6dcc4c255bf72722e57fa7c00820)
bindings_path() is the one place the CLI resolves room-bindings.json; tests/conftest.py points it at a temp file for every test (a faked HOME is respected), so the account-owner agent-add test can no longer pass only on a machine whose real file has a 'build' room (PR #15 CI). The test now covers mode=None (adds) and mode=default with no binding (refused), and a new test proves the isolation. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit d4d5f235a787413360436f94285d8cf3f5616833)
quorus/runtime/bindings.bindings_path() is the only way the CLI and the relay find room-bindings.json; replay_cmd, the scorecard route and scripts/scenarios.py read it there, the conftest fixture isolates that one function, Codex's sentinel repro is a test, and an ast invariant fails any module that builds the path on its own. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 068a635bab37a345dd26f880dceb16bdc869dc6d)
Three rounds of per-API read guards (open, Path.read_*, bytes paths, "+" modes, os.open) were an arms race; the overseer asked for the real file to be unreachable instead. conftest now redirects HOME to a session tmp dir before any quorus import, fails the session if Path.home() still resolves to the real home, gives git subprocesses a throwaway identity, and removes the builtins.open wrapper. The config snapshot guard keeps proving the real ~/.quorus is untouched; bindings_path() and the AST invariant stay as cheap belts. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 18ace002558a2519813ddd8bc75329cde07510e7)
Codex (review of 18ace002): an inherited MCP_TUNNEL_CONFIG_DIR survived the ambient-variable scrub and pointed config reads past the session HOME. It joins AMBIENT_IDENTITY_VARS; a regression asserts every *_CONFIG_DIR env var config.py consults is on that list and unset, and that resolve_config_dir() lands under the session HOME. Comments now say HOME-based test isolation, not an unreachable real HOME. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit c0c6402faa5559f4a9ee95f68df1203460ccd5ff)
The human's ask ('…then ask @alice-opencode to review it') wakes the
reviewer too; its stub fixed calc.py in parallel and whichever agent
published first won, so the other's publish diverged (PR #15 F5).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 9360d018c2b3bfcc24a27521642231ca4cc6d79c)
_invitee() started alice's relay before returning; a failing step left it running, since the caller's finally never saw the session (orphans 73397/73417 from 2026-10-19 20:41). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 9511a523cbba3c3237a1d5ad3e3344f61f2a7dd7)
A failure inside _invitee (share, bob's wizard) happened before the test's try/finally, so alice's relay outlived the run; the overseer's sweep found two such relays from a 20:41 run. The helper now tracks the sessions it opened and closes them before re-raising. Regression breaks the share step and asserts no started relay is still alive. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit af1cadffb267bff494e787965a718979a6c14721)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 83c8e7c856b3ee6c7c86477b73de252d123d8657)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 5cda69807d05e53309cb831b9ef240ebccd0ccc6)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 22680480e7c5639b0cf72f0b621a8ff77f3dfec6)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit adb9a45b1016e52ff06f5fe6481488ffd6b5ad63)
redact_secrets covered mct_ and quorus_sk_ but not quorus_pk_. Since H4 the owner's own participant key sits in ~/.quorus, which an agent running as the owner can read; a prompt-injected agent could post it unmasked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 0df1dbf7c37aad59cca85372edb067ec74d6cd53)
One @OPEN with four agents posted four '/defer -> @winner' lines (Arav's multi-owner run). The claim already names the winner and nothing routes on these edges; failover handoffs keep their defer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit b9052a773dadb05ec99f47428222b485145dccba)
b9052a77 left test_losing_an_auction_on_agent_chatter_posts_no_defer expecting one defer for an @OPEN; weekend went red. Both cases now expect none, under a name that says so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 07ae343a609e963a4726fbc88115eba5dab5e75d)
Multi-person audit BUG 24: nadia's only message woke nadia-opencode, the wake crashed before committing and left its held-window file dated before her message. The retry wake for that same message committed, and the publish guard held it as "@nadia wrote to me mid-turn". A window whose turn left nothing unpublished (no commit ahead of main, clean tree) is stale; mark_window now replaces it with the new turn's start and view. A window with an unpublished commit behind it still stands (codex's rule). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit ba92db59475ee0f36c936fd754763825ac25d3da)
Codex: _surviving blamed only the first 25 files at checkout HEAD while counting every added line, so a 26-file commit kept 25 of 26. Survival now blames every file at one pinned end commit, follows renames, counts deleted files' lines as gone, and leaves unblameable files out of the denominator, reported as coverage. 0.6.5 queue. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 04a96e5755ca10e156b87c78df9075cb4acf1653)
Codex on f033a72d: numstat's 'old => new' was read as a path, so a rename-and-edit commit kept 0% at 100% coverage; and any failed tree read counted as deletion while a blame timeout escaped. Numstat and renames are parsed from -z output, existence comes from ls-tree, and any git error or timeout marks the file uncomputed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit c5126cbf5ebc47bd1b9041c9c2edd8b53a25ac01)
This reverts commit 2edaee2.
This reverts commit 8387d46.
This reverts commit 9849aa4.
This reverts commit 8e81fa5.
Port for 0.6.5 per docs/internal/release-0.6.5-plan.md E, with no owner-signature code: - quorus/runtime/own_relays.py from 9971eeb7 (blob 53f320f). - relay writer: own_relay_urls, record_own_relay and the startup call from 9971eeb7:quorus/relay.py (blob 24ec60dd); docstring drops the signature wording. - 54da38fe's agent_cmd (_on_teammates_relay, the owner's own-relay credential) and hub (_invited_elsewhere) hunks, owner_sig replaced by own_relays; its triage part is already in 0.6.4 (e453d03). - tests: 54da38fe's agent_cmd regressions patched to own_relays, and test_own_relays (9971eeb7 minus owner_sig re-exports, plus the relay writer test from test_owner_sig_daemon). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bug fixes on released paths, per docs/internal/release-0.6.5-plan.md (Codex plan GO at 1a51e568). Version 0.6.5 in every package, the relay, server.json and the Claude plugin pin. CHANGELOG: one fresh 0.6.5 entry; the H4 lines the hold-revert re-added under 0.6.4 move here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The own-relay port (c7c3a29) starts the relay through uvicorn.Server so it can record the sockets it bound; test_main_runs_uvicorn and the access-log CLI test still mocked uvicorn.run. Both take weekend's versions from 380372e6 (test hunks only). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
quorus-ai 0.6.5: bug fixes on released paths
A bug-fix release under the release freeze. Nothing new. Full notes are in
CHANGELOG.md(0.6.5).Highlights
quorus_pk_…)./vote,/claim, …) work for a brand-new user instead of answering403 legacy auth.quorus relayforwards signals to its child, refuses a port that's already taken, and reports the child's exit code (no more orphaned relays).@openbidders stay silent, a crashed wake's stale window no longer holds the retry, and wake prompts no longer assume a shared Git object store.quorus scorecardsurvival now blames every file a commit touched at a pinned end (renames followed, deletions counted as gone, errors reported as uncomputed coverage).~/.quorus.Verification on head 8f21843 (26 commits on v0.6.4)
env -i, fresh HOME, plainquorus demo, opencode 2.0.30): fix on main at 39s, reviewer approved at 102s (pytest 1 passed), exit 0, no leftover processes._inviteeblobs verified).Merge with Create a merge commit so provenance notes survive.
🤖 Generated with Claude Code
https://claude.ai/code/session_01PePq4A7cLX7N31DGawFxBA