Skip to content

id: validation gap — no planted-bug / mutation check exists for membership voiding + frontier (P2.3/P2.8) #1395

Open

Description

@dezren39

Gap found by the #1075 validation audit (Phase 2, P2.3/P2.8) — 2026-10-27

The plan of record (doc/2026-10-11T11-08-42Z_design_remaining_work/plan-phases.md) requires, for voiding (P2.3): "S2 scenarios; a planted bug must fail", and for P2.8: "Property tests over random operation orders, and planted-bug checks … mutation checks on demand".

The property half exists and is strong (pkgs/id/tests/membership_properties.rs, voiding_properties.rs, groups/tests.rs proptests, encryption/tests.rs roster property). But a fresh search of pkgs/id on main 452d69e6 (2026-10-27) finds no planted-bug / mutation check anywhere: no planted or mutation/mutant references in pkgs/id/src/membership, pkgs/id/src/groups, pkgs/id/tests, the justfile, or tests/README.md. Nothing demonstrates that a deliberately planted voiding/frontier bug is actually caught by the suite — the exact failure mode P2.3/P2.8 were written to prevent (a test suite that passes both the correct and the broken implementation).

Acceptance criteria

  • A documented, runnable planted-bug check exists for the membership/voiding layer (e.g. a script or just recipe that applies one or more named mutations to frontier/voiding logic and asserts the scenario/property suites fail for each).
  • The check is recorded in pkgs/id/tests/README.md with how to run it on demand.
  • At least the voiding-authority mutation and one frontier-mapping mutation are covered.

Found by: queue task 1256 (validation audit of #1075), slice 3 (Phases 2–4 walk). Parent audit: #1075. Path-to-Phase-12 queue: #1235.

Activity

  1. added
    kind/testTest coverage, test infrastructure, or test-only fixes
    priority/highImportant and time-sensitive
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    nowOrg Project gate: active priority — orchestrator adds to the board
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    Triage verdict: confirmed — gap is real on current main

    Probed origin/main 0e26fa4b3 (2026-11-02) with case-insensitive greps for planted|mutation|mutant across pkgs/id/** plus fault-inject|byzantine|adversarial|negative-test|chaos|sabotage sweeps:

    • No planted-bug / mutation check exists for membership voiding + frontier. Every keyword hit is incidental:
      • permutation(s) in pkgs/id/tests/membership_scenarios.rs:160,228, voiding_scenarios.rs:178,179,208, voiding_properties.rs:248, event_store/resolve.rs:562 (substring mutat inside permutation);
      • mutation in the state-change sense (world/handle.rs, world/mod.rs, world/tests.rs:2806, protocol.rs, fileops.rs, benches, worker-poc/README.md, DOM ignoreMutation in image-node-view.ts);
      • mutate() helper in pkgs/id/tests/relay_ops.rs:131 is about systemd unit rendering for relay ops, not voiding/frontier;
      • evil* fixtures elsewhere are path-traversal/security test names, unrelated.
    • The property-test half cited in the issue is present (pkgs/id/tests/voiding_properties.rs has proptest content), so the gap is exactly as described: nothing demonstrates a deliberately planted voiding/frontier bug gets caught.

    Route: enqueueing a scoped small_fix follow-up packet for issue #1395 (add a planted-bug check that fails the suite when a voiding/frontier invariant is deliberately broken). No hard-stop labels on this issue; triage claims no files changed.

  4. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    Done: triaged, follow-up enqueued

    • Outcome: triaged — issue stays open, gap confirmed on origin/main 0e26fa4b3.
    • Follow-up: task 6582 (small_fix packet) queued to add the planted-bug check for voiding + frontier.
    • Queue labels cleared (work/assigned, queue/claimed, status/in-progress removed).
  5. 42 remaining items

  6. added
    queue/queuedHas a queued task in the Supabase agent queue
    and removed
    work/assignedQueue worker lifecycle state
    on Nov 4, 2026
  7. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor
    • Session / ID: task 7238 (repo-fleet-monitor run 2026-11-03 22:12 CST)
    • Found via: monitor reconciliation
    • Task: Claim evaporated — the queue task is queued and unclaimed again (lease expired with no complete/park/block), so the issue labels are reset to the truth: queue/queued + status/needs-triage. Checkpoint stage at evaporation: handed_off.
    • Expectation: a queue lane re-claims task 7238 and resumes from the checkpoint.
  8. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  11. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done (triaged)

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/testTest coverage, test infrastructure, or test-only fixesnowOrg Project gate: active priority — orchestrator adds to the boardpriority/highImportant and time-sensitivesource/creatorFiled by the new-issue-creator jobtask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions