Skip to content

Phase 4 (audit) of #4113 — closing kind-by-gate inventory for pkgs/id boards #4114

Open

Description

@dezren39

Phase 4 (audit) of design #4113 — closing kind-by-gate inventory for pkgs/id boards

Parent design: #4113 ("one signed set, one meaning — BoardGraph's gates hold at insert, projection and replication"). Design doc: files/designs/code-id-boardgraph-one-signed-set.md in the keep-the-four-repos-healthy goal workspace. Audit baseline: origin/main d9636237.

Gated on Phases 1–3 of the design: Phase 1 = #3963 + #4109 (insert gates: embed_ref validation; second-first BoardListing refused), Phase 2 = #4003 + #3964 (projection determinism: active-only attestation edges; deterministic Rules resolution), Phase 3 = #4081 (fork record in the fork board's replication set + closure). Do not start the inventory before all three land.

Scope

A kind-by-gate inventory for pkgs/id/src/boards.rs: for every BoardObject variant (Board, Rules, Forum, Thread, Post, Attachment, Membership, RoleAttestation, ModerationAction, BoardFork, Supersede, Theme, BoardListing, Tombstone), disposition each of the design's five gates, with the code site or test that proves it:

  1. Shape — validate_shape constrains every field that carries a rule (bounds, uniqueness inside the object, text rules).
  2. References at insert — every reference field the object carries is validated by validate_links (existence + board scope via require_scoped / require_board, kind checked where a kind rule exists). List each variant's reference fields explicitly; a field with no validation is a finding, not an oversight to leave silent.
  3. Chain / resolution posture — one of: chain head unique at insert (listings) / competing versions resolved by a stated deterministic rule (rules) / not versioned, with the reason.
  4. Projection effect — the variant's effect in compose_view (and latest_listings where relevant) under the active-records rule: a record contributes edges/effects only while itself active, or the deliberate exception with its reason (cf. the has_role existence-based acceptance note — deliberate, documented divergences are dispositions, not findings).
  5. Replication membership + closure — the variant's board_ref() posture and whether board_object_set's closure pulls in everything validate_links needs for a fresh graph to accept it (the Board/Theme/BoardFork dependency pattern).

Record the inventory as a table in the boards.rs module header doc (the checklist the next object kind is reviewed against), and post a summary on design #4113.

Acceptance criteria

🤖 Filed by the design architect (pass 35, 2026-11-01) as Phase 4 (audit) of design #4113.

Activity

  1. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · filed as Phase 4 (audit) of design #4113

  2. added
    queue/queuedHas a queued task in the Supabase agent queue
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    status/blockedQueue or user escalation state
    on Nov 2, 2026
  3. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  4. 161 remaining items

  5. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 4, 2026
  6. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  7. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 4, 2026
  8. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  9. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 5, 2026
  10. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor
    • Session / ID: task 6019 (repo-fleet-monitor run 2026-11-05T15:45:48Z)
    • Found via: monitor reconciliation (Duty 1 claim/label divergence repair)
    • Task: Claim evaporated: task 6019 is queued and unclaimed in repo-health-code-pilot, but this issue still carried claimed labels. Labels reset to the truth (queue/queued + status/needs-triage). Checkpoint stage at evaporation: handed_off.
    • Expectation: The next lane claim picks task 6019 up from the queued state and posts a fresh pickup note.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)kind/enhancementqueue/queuedHas a queued task in the Supabase agent queuesource/design-architectFiled by the repo design architect jobstatus/needs-triageNot yet triaged; needs a first looktask/small-fixQueue packet kind: bounded fix with reproduction and targeted tests

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions