Skip to content

id(artifact): preserve pre-upgrade log replay for duplicate after and non-NFC fields #5625

Closed

Description

@dezren39

Receipt-audit follow-up from #3232 / design #3231

The new receipt checks for duplicate after hashes (#3196) and NFC in document.media_type / tag.name / tag.value (#3192) are unconditional on local replay today. ArtifactLog::open re-runs verify() and parsed_for_replay(), but verify() always checks the duplicate-after rule and parsed_mode(replay=true) still checks those NFC fields.

Before those checks landed, the supported artifact producer path could persist these shapes: SignedArtifact::sign_after accepted duplicate after entries, and Directory.publish_document / publish_tag passed text through the then-lenient parser. Such logs were accepted at the time; reopening them now fails, contrary to #3231's replay-compatibility criterion. Tests cover the home_declared replay exception and duplicate friend_remove replay, but not these pre-upgrade after/NFC cases.

Scope

This follow-up is separate from the #3232 audit; the audit records the gap and links this issue without changing validation behavior.

Acceptance criteria

Activity

  1. developing-today commented on Nov 4, 2026

    @developing-today
    Contributor
  2. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    priority/normalOrdinary priority (the default)
    effort/mMedium: expected under 1 day of work
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    source/queue-workerFiled or worked by the queue/worker pilot
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 4, 2026
  3. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    Intake review

  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 5, 2026
  5. 24 remaining items

  6. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  7. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  8. 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 5, 2026
  9. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    Resumed by repo queue worker lane code-c as task 10598: Codex review on PR #6321 completed with no findings (review state: has_any_findings=false), the diff is the single-file narrow replay boundary described in the PR, and the PR body records the full laptop test run (cargo test --lib in pkgs/id: 2258 + 317 passed, 0 failed). Merged PR #6321 (squash, merge commit c0b4ac6); this issue auto-closed via Fixes #5625. Task 10598 complete.

  10. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Nov 5, 2026
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)effort/mMedium: expected under 1 day of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilotstatus:donetask/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