Repository navigation
With agents of one model, the user is the second opinion: on shared knowledge, and on what no C makes - #181
silvervest wants to merge 4 commits into
Conversation
Shared knowledge counts once two different models back a proposal. On an x86 game worked by one model only, 55
proposals waited for a second model that never came (54 had a single backer), and every session found the same
things out again. The panel now offers "Give it to agents" and "Reject" on those proposals too: the user is the
second opinion. decide() already took any proposal; its docstring, the reply to a proposal and the prompt's
heading ("or checked by the user") now say so.
…r hears when only those are left A verdict that no C makes a function sets it aside once NOT_C_AGENTS agents of NOT_C_MODELS models agree; agents of one model never get there. On an x86 demo whose last function was a hand-written float-to-int helper, two agents of one model claimed it a dozen times between them, each time writing the same note: once an agent's run started again, its own recent release no longer kept it off. The claim order now skips a function the agent itself said no C makes (another model's agent can still take it), and nothing_to_claim says which ones are waiting on that verdict. When every open function is, the agent is told to stop, and the user gets one notification per function: set it aside in its panel, or let another model look.
The claim order never hands those back to it, so every session could only find nothing to do: they failed one after another into a pause after five. Now the helper stops before a session starts and says what the user can do (set them aside, or start a helper of another model). Another helper, which hasn't said so, works on.
…stop "Stop working on this project" went to any agent that found nothing to claim while every open function had a no-C verdict from anyone: an agent of another model, out of claims only because it had released them for now, quit though its verdict was the one they waited for. It's said only when every open function has the agent's own verdict. Tested with an agent of another model that released the function.
ab9728c to
58763e5
Compare
|
Rebased onto main, with one new commit from my own review: "Only an agent whose own verdict is on every open function is told to stop". "Stop working on this project" went to any agent that found nothing to claim while every open function had a no-C verdict from anyone. That included an agent of another model that had only released them for now, so the agent whose verdict could set them aside quit. It's now said only when every open function has the agent's own verdict. The test adds that case, and it fails on the previous head. |
|
I reviewed head [P2] The new verdict handling doesn't reach room guests. The host's New handling being bypassed: https://github.com/silvervest/decompdecomp/blob/58763e5dcf0ab7523e65d0fc2658cd1a7ce09e64/src/decompnet/network.py#L638 I reproduced this with separate host/guest databases and a stand-in room link that delegates to the host's
The room protocol should carry the host's verdict-aware response, with a regression test. Both the ROM room path ( Otherwise, the knowledge controls and local claim handling look sound. All six CI checks pass; locally, 83 focused tests passed, and lint passed. The PR merges cleanly. |
Merge order: any time: independent of the other PRs of this set (#178-#185).
New feature.
Two rules ask agents of two models to agree, so one model's blind spot isn't taken for proof: shared knowledge, and the verdict that no C makes a function. Agents of one model never get there, and nothing told the user it was theirs to settle.
decide()already took any proposal; its docstring, the reply to a proposal and the prompt's heading ("or checked by the user") now say so._ftol2, two agents of one model claimed it a dozen times between them, each time writing the same note, then failed session after session until the five-failure pause. The claim order now skips a function the agent itself said no C makes (another model's agent can still take it), andnothing_to_claimsays which ones wait on that verdict. When every open function does, the agent is told to stop, the user gets one notification per function (set it aside in its panel, or let another model look), and a helper with nothing else stops before starting a session, saying so.Tests:
test_the_user_can_be_the_second_opinion(tests/test_knowledge.py),test_an_agent_isnt_handed_back_what_it_said_no_c_makes_and_the_user_hears_when_only_that_is_left(tests/test_claims.py),test_a_helper_stops_when_all_that_is_open_is_what_it_said_no_c_makes(tests/test_agents.py).ruffis clean.🤖 Generated with Claude Code