Repository navigation
chore: in_review sweep/list query misses an item with a valid state_id — stale read-index, not corrupted state_id - #810
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: getappz/agentflare/.coderabbit.yaml Review profile: CHILL Plan: Essentials Run ID: 📒 Files selected for processing (2)
Included review availability: 2 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 3 reviews per hour. 📝 WalkthroughWalkthrough
ChangesItem list agent matching
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The list change addresses the claimed-item visibility case, and no merge-blocking concern is established. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
|
Claiming self-repair for |
supervisor — CI self-repair dispatchedFailing checks: build (ubuntu-latest), build (windows-latest). Please investigate and push a fix. job: cgpv-41gsuFyFctYLsnR3 |
…sweep-list-query-misses-an-ite' into task/630-in-review-sweep-list-query-misses-an-ite
supervisor — CI greenChecks are passing again. |
Verified independently. Findings below.
Root cause — confirmed
claim()stores raw ownerSome(owner.to_string())(claim.rs:143), bypassingcanonicalize— soassignee_agentcarries<agent>:<instance>.create/updatecanonicalize viaagent_registry::canonicalize(crud.rs:290), which only alias-maps/lowercases and passes unknown strings through unchanged (registry.rs:68-72) — suffix preserved.item_listused exact string match, so any claimed item dropped out of its own agent's inbox. Fix'sagent_part(claim.rs:36) splits on:+ canonicalizes → correct.Fix — correct
retainandsortkey; matches documentedlistsemantics and the existingagent_partcomparison already used in claim'sBlockedByAssigneecheck (claim.rs:119-121). No regression: inbox = "mine + unassigned" now correctly treats same-agent/different-instance as mine; unassigned stillunwrap_or(true)in retain,unwrap_or(false)in sort (unchanged semantics).Scoping — correct
list_by_projectis direct SQL (crud.rs:124-131).run_review_sweep(supervisor.rs:1286, 1304-1310) buildsin_reviewfromlist_by_project+state_by_idgroup check, no assignee filter — genuinely unaffected by this bug, correctly scoped out.Checks (foreground, in
task/630worktree)cargo fmt --check→ exit 0cargo test --bin agentflare item_tests::→ 58 passed / 0 failed / 1 ignoredcargo test --bin agentflare item_list_includes_a_claimed_item_for_its_own_agent→ passes (would fail pre-fix: exact match drops the suffixed-assignee "Mine")cargo clippy --bin agentflare→ exit 0, zeroitem.rsdiagnostics (1 pre-existingunsafe-codewarning inagentflare-config)Diff focused (2 files, +70/-3), clear rationale comment, faithful regression test.
REVIEW_APPROVED
Opened by
opencodeon flared:c997d745ae66 for item #630 via agentflare.Summary by CodeRabbit