Skip to content

feat(editor): add CodePress command adapter boundary - #2

Merged
lightninglu10 merged 3 commits into
stagingfrom
pr3-freecut-adapter-5319
Aug 16, 2026
Merged

feat(editor): add CodePress command adapter boundary#2
lightninglu10 merged 3 commits into
stagingfrom
pr3-freecut-adapter-5319

Conversation

@lightninglu10

@lightninglu10lightninglu10 commented Aug 15, 2026

Copy link
Copy Markdown

Summary

Adds the PR3-controlled FreeCut boundary needed for CodePress timeline editing while keeping the existing raw FreeCut service outside the product contract.

Related: quantfive/codepress#5319

Technical details

  • Adds the PR1-compatible typed command contract, validation, canonical fixtures, and conformance coverage.
  • Adds controlled editor, pure edit-engine, renderer, and host adapter interfaces.
  • Translates and applies commands atomically with integer-microsecond timing, revision/idempotency/precondition rejection, deterministic ripple deletion, and caption cue support.
  • Preserves frame-native conversion at the adapter boundary without adding editor shell, media, backend, export, or caption UI work.

Changes

  • Controlled CodePress editor/document/edit-engine/render interfaces
  • CodePress command adapter and frame-native document bridge
  • Deterministic timing, ripple deletion, caption cues, conflicts, and fixtures

Test plan

  • Run npm run check -- src/features/editor/codepress and npm run lint -- src/features/editor/codepress.
  • Run npm run test:run -- src/features/editor/codepress/adapter.test.ts (15 tests).
  • Run boundary, dependency-contract, wrapper-health, changed-health, build, and provenance checks.

Notes

The repository-wide Vitest run retains inherited failures in existing Zustand/playback tests due to undefined localStorage.setItem; these are outside the PR3 diff.

@lightninglu10lightninglu10 self-assigned this Aug 15, 2026
@lightninglu10

Copy link
Copy Markdown
Author

@codepress /judge-verification can you judge this verification?

Local Verification

PR Head SHA:11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c

Verifier revision binding

  • git rev-parse HEAD -> 11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c
  • git status --porcelain -> (empty)
  • Live PR feat(editor): add CodePress command adapter boundary #2 head: 11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c; base: staging at e2733fd4da40d5378c3caf11a7d2c5305fd55902.
  • Runtime plane: local direct execution of the bundled src/features/editor/codepress/index.ts module. This PR introduces no HTTP, UI, event, or persistence trigger surface, so no server/browser probe is applicable.

Behavioral Contract Results

#Effect that must be observedRequired evidenceResultHow it was observed
B1Canonical PR1 command batches apply atomically, including deterministic ripple deletionlive-execution✅ PASSL1 applied the canonical core fixture at runtime, reached revision 8, and observed ripple-created IDs plus a -500000us delta.
B2Caption cues validate, insert, move, and preserve deterministic orderlive-execution✅ PASSL5 observed cue-hello, cue-next in order with the moved cue range; L6 observed invalid cue rejection.
B3Public microseconds convert deterministically to frames and reject non-aligned valueslive-execution✅ PASSL7 observed 30 frames = 1000000us and 33334us non-aligned; L8 observed renderer rejection with FrameTimingError; L10 observed canonical frame translation.
B4Idempotency replay/conflict and stale revision rejection are explicit and retry-safelive-execution✅ PASSL2 observed replay; L3 observed non-retryable idempotency_conflict; L4 observed retryable revision_conflict with revision 8.
B5Frame-native FreeCut documents cross the typed controlled boundary without losing positionslive-execution✅ PASSL9 observed 30..90 frames round-trip as 1000000..3000000us and back to frame 30.

Diff Trigger Inventory

SurfaceLocationContract coverage
Controlled PR1 contract validation and canonical fixture compatibilitysrc/features/editor/codepress/contract.ts; fixtures/L6, D1-D11
Atomic command adapter and pure edit engine, including ripple deletionadapter.ts; edit-engine.tsL1-L4, D4
Caption cue handling and caption style/document fieldscontract.ts; edit-engine.tsL5-L6, D4
Deterministic microsecond/frame conversion and frame-native translationtiming.ts; translation.ts; document.tsL7, L9-L10, D4
Controlled render/editor/host interfacesinterfaces.ts; adapter.tsL8, D4
Boundary quality, build, and provenance.fallowrc.json; package scriptsD1-D11

No declared cross-feature verification graph exists in this FreeCut repository.

Verification Contract Results

#AssertionPlaneEvidenceResultDetails
L1Canonical core fixture applies through bundled adapter with normalized ripple effectlocallive-execution✅ PASSNode direct runtime: status=applied, revision 8, command types split_item, trim_item, ripple_delete, move_item, move_track; ripple created item-speaker-left:ripple-right and item-music:ripple-right, delta -500000us.
L2Idempotent replay returns stored resultlocallive-execution✅ PASSDirect runtime: first applied, second replayed, original operation operation-cut-intro.
L3Changed payload under existing key is rejectedlocallive-execution✅ PASSDirect runtime: idempotency_conflict, retryable=false.
L4Stale base revision is rejected with retry metadatalocallive-execution✅ PASSDirect runtime: revision_conflict, retryable=true, retry_with_revision=8.
L5Caption cues upsert and move through controlled adapterlocallive-execution✅ PASSDirect runtime: status=applied; cue IDs cue-hello,cue-next; ranges [1200000,2700000] and [3000000,4500000].
L6Invalid caption cue is rejected by contract validationlocallive-execution✅ PASSDirect runtime: invalid_request at commands[0].cues[0].
L7Frame conversion/alignment is deterministiclocallive-execution✅ PASSDirect runtime: framesToMicroseconds(30,30)=1000000, aligned frame 30, isFrameAligned(33334,30)=false.
L8Controlled renderer receives aligned time and rejects non-aligned timelocallive-execution✅ PASSDirect runtime captured renderer request {frame:30,time_us:1000000}; 33334us raised FrameTimingError.
L9Frame-native document round-trips through controlled boundarylocallive-execution✅ PASSDirect runtime observed controlled range [1000000,3000000]us; round-trip returned from=30, durationInFrames=60, revision 4.
L10Canonical command timestamps translate to deterministic frameslocallive-execution✅ PASSDirect runtime observed ripple frames 60..75 and split frames 120/120.
D1-D11Deterministic repository checkslocaltest-suite✅ PASSTypecheck, lint, format, 15 focused tests, boundaries, dependency contracts, legacy imports, wrapper health, changed health, build, and provenance all passed.

Canonical QA Artifacts

  • Markdown report: /tmp/codepress-qa-verifier-runs/local-verification-report-pr2-11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c-1786823433406-655517739.md
  • Contract JSON: /tmp/codepress-qa-verifier-runs/local-verification-contract-pr2-11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c-1786823433406-655517739.json
  • Evidence JSONL: /tmp/codepress-qa-verifier-runs/local-verification-evidence-pr2-11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c-1786823433406-655517739.jsonl (L1-L10 live-execution records plus D1-D11 deterministic-check records)
  • Artifact manifest JSON: /tmp/codepress-qa-verifier-runs/local-verification-artifact-manifest-pr2-11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c-1786823433406-655517739.json
  • Exact-head preflight: /tmp/codepress-qa-verifier-runs/local-verification-preflight-pr2-11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c-1786823433406-655517739.txt
  • Bundled runtime probe: /tmp/codepress-qa-verifier-runs/freecut-codepress-adapter-pr2-11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c-1786823433406-655517739.cjs
  • These are local non-visual artifacts; no screenshot/video upload is applicable.

Supplementary checks and inherited findings

  • The repository-wide Vitest run remains baseline-red at this exact head: 44 failed files, 581 failed / 4216 passed tests, and 4 unhandled errors, caused by existing Zustand/playback tests calling undefined localStorage.setItem; this is outside the PR3 diff and not used as a scoped PASS row.
  • Fallow unused-export scanning retains 10 unrelated findings plus 3 stale entries, and unused-class scanning retains 2 stale existing Clock.ts entries; none are in the PR3 files and no unrelated allowlists were changed.
  • Build emitted existing Vite dynamic-import, chunk-size, and sourcemap warnings; build exited 0.

Log Errors

No runtime server/log surface applies to this pure controlled-boundary package. No new runtime errors were observed in the direct probe.

Frontend QA

  • Status: not applicable
  • Reason: PR3 adds no UI/editor shell or frontend interaction surface; PR6 owns the future shell.

Overall: ✅ PASS — PENDING JUDGE

@lightninglu10

Copy link
Copy Markdown
Author

@codepress can you judge the verification above?

@codepress-dev

Copy link
Copy Markdown

👋 Hey @lightninglu10! Starting a new session to help with your request. View session

@codepress-dev

Copy link
Copy Markdown

@Terminal@lightninglu10

Dispatched by judge-verification.

This judgment is READY TO MERGE at the current head. If the PR is still a draft, transition it to ready for review now with the guarded readiness transaction: codepress-policy ready-for-review --repo . --pr 2 (or node packages/delivery-policy/dist/cli.js ready-for-review --repo . --pr 2 when the CLI is not on PATH). It re-validates current-head QA and judge evidence, reconciles the delivery-status marker, and marks the PR ready so the native reviewer can dispatch. Do not call gh pr ready directly, and do not merge; merge authorization still requires the reviewer gate.

Verification Judgment — PR #2 (local)

Verdict: ✅ READY TO MERGE

PR Head SHA:11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c

Summary: The exact-head local verification establishes the material PR3 controlled-boundary behavior, and no blocking safety gap remains.

Revision binding

  • Classification: SAME-SHA LATE BINDING
  • Report head:11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c
  • Live PR head:11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c
  • Audited checkout: clean detached checkout at 11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c
  • Concrete evidence: The verifier report captured git rev-parse HEAD -> 11d63a96eb8cc3bc4fd8a1bbe17499ec0175295c; it also captured git status --porcelain -> (empty). Live PR metadata reports the same headRefOid; the judge detached checkout at that SHA also returned git status --porcelain -> (empty).
  • Rows carried forward: none
  • Rows reverified at live head: none
  • Rows still requiring verification: none
  • Publication timing: GitHub’s timeline shows the verifier comment at 2026-08-15T19:58:00Z after the only PR commit at 2026-08-15T07:56:30Z; the live head remains the reported SHA. This establishes ordering only; checkout cleanliness comes from the explicit captures above.

Diff trigger inventory

SurfaceLocationCoverage
PR1 contract validation and canonical fixture compatibilitysrc/features/editor/codepress/contract.ts; src/features/editor/codepress/fixtures/B1, B2, B4, D1-D11
Atomic command adapter and pure edit engine, including conflicts and ripple deletionsrc/features/editor/codepress/adapter.ts; src/features/editor/codepress/edit-engine.tsB1, B4, D1-D11
Caption cue validation, insertion, movement, ordering, and stylingsrc/features/editor/codepress/contract.ts; src/features/editor/codepress/edit-engine.tsB2, D1-D11
Deterministic microsecond/frame conversion and the frame-native document bridgesrc/features/editor/codepress/timing.ts; src/features/editor/codepress/translation.ts; src/features/editor/codepress/document.tsB3, B5, D1-D11
Controlled renderer/host boundary and raw-path isolationsrc/features/editor/codepress/interfaces.ts; src/features/editor/codepress/adapter.ts; src/features/editor/codepress/adapter.test.tsB3, B5, D1-D11
Boundary quality, dependency checks, build, and provenance.fallowrc.json; package scriptsD1-D11

Per-item

#Verifier saidJudgmentEvidence
B1PASS✅ PASSL1 applied the canonical core fixture through the bundled adapter, reached revision 8, and observed deterministic ripple-created IDs and a -500000us timeline delta. The focused suite also exercised atomic failure and crossing-fragment behavior.
B2PASS✅ PASSL5 observed caption cue upsert/movement with deterministic cue-hello, cue-next order and ranges; L6 rejected the invalid caption cue at commands[0].cues[0].
B3PASS✅ PASSL7 established exact integer frame conversion and rejection of non-aligned 33334us; L8 observed aligned renderer input and FrameTimingError; L10 observed canonical frame translation.
B4PASS✅ PASSL2 observed idempotent replay, L3 observed non-retryable idempotency_conflict, and L4 observed retryable revision_conflict with retry_with_revision=8.
B5PASS✅ PASSL9 round-tripped a frame-native document with 30..90 frames as 1000000..3000000us and back without losing positions or revision; L8 also kept renderer payloads outside the command/document contract.
D1-D11PASS✅ PASSThe verifier reports passing typecheck, lint, format, 15 focused tests, boundary/dependency/legacy-import checks, wrapper and changed-health checks, build, and provenance at this exact head. The inherited repository-wide localStorage failures are outside the changed boundary and do not contradict these scoped checks.

Overall status check

  • Verifier said: PASS
  • Result: READY TO MERGE

What stood up

  • Exact-head revision binding is supported by both the verifier’s captured clean checkout and the judge’s clean detached audit.
  • The live evidence covers the controlled adapter’s command application, captions, timing, conflicts, frame bridge, renderer isolation, and deterministic repository checks.

@lightninglu10
lightninglu10 marked this pull request as ready for review August 15, 2026 22:43
@lightninglu10
lightninglu10 marked this pull request as draft August 16, 2026 05:44
@lightninglu10
lightninglu10 marked this pull request as ready for review August 16, 2026 05:44
@lightninglu10
lightninglu10 marked this pull request as draft August 16, 2026 05:51
@lightninglu10
lightninglu10 marked this pull request as ready for review August 16, 2026 05:51
@lightninglu10

Copy link
Copy Markdown
Author

@codepress can you review this PR pls?

@codepress-dev

Copy link
Copy Markdown

👋 Hey @lightninglu10! Resuming conversation to help with your request. View session

@lightninglu10codepress.dev

Copy link
Copy Markdown
Author

Review — request changes

The overall boundary shape is good: a pure edit engine with explicit host ports is the right direction. The current head still has several correctness failures at that boundary, so I’m requesting changes before merge. GitHub’s existing checks are green, but they do not exercise these cases.

Findings

  1. Critical — valid non-integer-FPS documents cannot round-trip (src/features/editor/codepress/document.ts:240-264)

    The bridge converts each endpoint to its canonical microsecond value, then calls assertFrameAligned(end_us - start_us) to compute durationInFrames. At 29.97 fps, frame 1 is 33367us and frame 2 is 66733us, so a valid one-frame item at from=1 has a duration of 33366us, while the canonical one-frame duration is 33367us; the round-trip throws. Compute the start/end frame indices separately and subtract them. Add a 30000/1001 test for clip, text, and caption items with a non-zero start frame.

  2. Critical — ripple deletion breaks frame alignment at fractional frame rates (src/features/editor/codepress/edit-engine.ts:473-496)

    Ripple uses framesToMicroseconds(deltaFrames, fps) as one constant timestamp shift. At 29.97 fps, shifting a downstream item from [66733, 100100) by the one-frame delta 33367us produces [33366, 66733), whose start is not a canonical frame timestamp. The next adapter operation will reject the now-invalid document. Shift frame indices and re-encode each endpoint, or use endpoint-specific canonical differences, and add an NTSC ripple regression test.

  3. Critical — request_job is accepted as applied but never requests a job (src/features/editor/codepress/edit-engine.ts:818-819)

    request_job is part of the public EditCommand union and MediaJobClient is exposed as a host port, but the engine returns emptyEffect() and the adapter never calls mediaJobClient.request. A valid job request therefore increments the revision and returns success while doing nothing. Move job requests out of the pure edit command path and dispatch them through the host adapter, or reject them as unsupported; either way, add a test that observes the host call and its failure result.

  4. Critical — host callbacks can make a committed operation return rejected (src/features/editor/codepress/adapter.ts:386-397)

    The adapter updates this.document and stores the idempotency result before calling externalEditor.replaceDocument, subscribers, and telemetry, all inside the try whose catch returns a rejection. If any synchronous callback throws, the caller receives rejected even though the document/revision/cache have already changed, contradicting the atomicity guarantee. A rejected telemetry promise is also unhandled. Keep the state transaction separate from observer/telemetry delivery and isolate callback failures; add throwing-editor, subscriber, and telemetry tests.

  5. Warning — frame translation leaks the old microsecond fields (src/features/editor/codepress/translation.ts:145-198)

    FrameClipItem, FrameTextItem, and FrameCaptionCue omit the *_us fields at the type level, but itemToFrames spreads the original item, so the returned runtime objects contain both microsecond and frame timestamps. propertiesToFrames similarly retains fade_in_us/fade_out_us. Construct the frame-native objects explicitly and assert that the old fields are absent; otherwise downstream consumers must guess which representation wins.

  6. Warning — a valid 128-character item ID cannot produce a ripple fragment (src/features/editor/codepress/edit-engine.ts:188-198)

    Fragment IDs are truncated only after appending the suffix. For an ID at the declared MAX_ID_LENGTH, every candidate truncates back to the original ID, so a crossing ripple delete exhausts the suffix loop and fails. Truncate the original portion to leave room for the suffix and add a max-length collision test.

Architecture assessment

Keep the current high-level boundary, but make its ownership explicit: the edit engine should remain pure, job requests should be handled by the adapter/host port rather than silently treated as edits, and post-commit observers must not participate in the apply result’s success/failure transaction. Fixing those boundaries makes the behavior easier to reason about than adding more guards around the current no-op and callback paths.

Review outcome: request changes.

@lightninglu10

Copy link
Copy Markdown
Author

@codepress /judge-verification can you judge this verification?

Local Verification

PR Head SHA:212a18c

Verifier revision binding

  • git rev-parse HEAD -> 212a18c
  • git status --porcelain -> (empty)
  • Live PR feat(editor): add CodePress command adapter boundary #2 head: 212a18c; base: staging at e2733fd.
  • Live PR state: OPEN, draft=false; current delivery marker is intentionally not treated as verified because the prior marker names the superseded head.
  • Runtime plane: local direct execution of the bundled src/features/editor/codepress/index.ts module. This PR introduces no HTTP, UI, event, or persistence trigger surface, so no server/browser probe is applicable.

Behavioral Contract Results

#Effect that must be observedRequired evidenceResultHow it was observed
B1Canonical PR1 command batches apply atomically, including deterministic ripple deletionlive-executionPASSL1 applied the canonical core fixture, reached revision 8, and observed the normalized -500000us ripple delta.
B2Caption cues validate, insert, move, and preserve deterministic orderlive-executionPASSL5 observed deterministic cue IDs/order; L6 rejected the canonical invalid cue path.
B3Microsecond/frame conversion is deterministic and rejects non-aligned render/application inputlive-executionPASSL7 observed exact integer/NTSC conversion and L8 observed aligned renderer input plus FrameTimingError.
B4Idempotency and stale revision conflicts are explicit and retry-safelive-executionPASSL2 replayed, L3 rejected a changed payload, and L4 returned retry metadata.
B5Fractional-FPS frame-native documents preserve nonzero-start clip/text/caption endpointslive-executionPASSL9 round-tripped frames [1,2,3] for both numeric 29.97 and exact 30000:1001; clip endpoints were 33367..66733us.
B6NTSC ripple endpoints remain canonical and request_job cannot silently succeedlive-executionPASSL10 re-encoded downstream clip/caption endpoints and accepted a subsequent move; L11 rejected request_job with zero host calls and no revision change.

Diff Trigger Inventory

SurfaceLocationContract coverage
PR1 contract validation and canonical fixture compatibilitycontract.ts; fixtures/L5-L6, D3, D13
Atomic adapter/edit engine and fractional ripple deletionadapter.ts; edit-engine.tsL1-L4, L10-L11, D3, D13
Caption cue/document bridgedocument.ts; edit-engine.tsL5, L9-L10, D3, D13
Deterministic timing and frame-native translationtiming.ts; translation.ts; document.tsL7, L9-L10, D3, D13
Controlled render/editor/host interfacesinterfaces.ts; adapter.tsL8, L11, D3, D13
Boundary, quality, build, and provenance checks.fallowrc.json; package scriptsD1-D12

No declared cross-feature verification graph exists in this FreeCut repository.

Verification Contract Results

#AssertionPlaneEvidenceResultDetails
L1Canonical core fixture applies through bundled adapterlocallive-executionPASSstatus=applied, revision 8, ripple delta -500000us.
L2Idempotent replay returns stored resultlocallive-executionPASSFirst applied; second replayed; operation operation-cut-intro.
L3Changed idempotency payload is rejectedlocallive-executionPASSidempotency_conflict, retryable=false.
L4Stale revision is rejected with retry metadatalocallive-executionPASSrevision_conflict, retryable=true, retry revision 7.
L5Caption cues apply in deterministic orderlocallive-executionPASSCue IDs cue-hello,cue-next.
L6Invalid caption cue is rejectedlocallive-executionPASSinvalid_request at commands[0].cues[0].
L7Exact timing conversion/alignment is deterministiclocallive-executionPASSNTSC frame 30 = 1001000us; 33334us is not aligned at 30fps.
L8Controlled renderer boundary receives aligned frame and rejects invalid timelocallive-executionPASSRequest frame 30/time_us 1000000; non-aligned request rejected.
L9Fractional endpoint document round-triplocallive-executionPASSNumeric 29.97 and exact 30000:1001 returned frames [1,2,3]; one-frame durations stayed one.
L10NTSC ripple re-encodes endpoint frameslocallive-executionPASSVideo/caption endpoints [33367,66733], duration 367033us, valid timeline, next move applied.
L11request_job host boundary is explicitlocallive-executionPASSunsupported_command; host calls 0; revision unchanged at 7.
D1-D13Deterministic repository and runtime checkslocaltest-suitePASSFocused suite (18 tests), format/check/lint, boundaries, deps contracts, legacy imports, wrapper health, changed health, build, provenance, diff, and bundled runtime all passed.

Canonical QA Artifacts

  • Markdown report: /tmp/codepress-qa-verifier-runs/local-verification-report-pr2-212a18c2325122805f8d870979bb86f2128fce86-1786862500807.md
  • Contract JSON: /tmp/codepress-qa-verifier-runs/local-verification-contract-pr2-212a18c2325122805f8d870979bb86f2128fce86-1786862500807.json
  • Evidence JSONL: /tmp/codepress-qa-verifier-runs/local-verification-evidence-pr2-212a18c2325122805f8d870979bb86f2128fce86-1786862500807.jsonl (L1-L11 live-execution records plus D1-D13 deterministic-check records)
  • Artifact manifest JSON: /tmp/codepress-qa-verifier-runs/local-verification-artifact-manifest-pr2-212a18c2325122805f8d870979bb86f2128fce86-1786862500807.json
  • Exact-head preflight: /tmp/codepress-qa-verifier-runs/local-verification-preflight-pr2-212a18c2325122805f8d870979bb86f2128fce86-1786862500807.txt
  • Bundled runtime probe: /tmp/codepress-qa-verifier-runs/freecut-codepress-adapter-pr2-212a18c2325122805f8d870979bb86f2128fce86.cjs
  • Runtime summary: /tmp/codepress-qa-verifier-runs/local-verification-runtime-pr2-212a18c2325122805f8d870979bb86f2128fce86-1786862500807.json
  • These are local non-visual artifacts; no screenshot/video upload is applicable.

Supplementary checks and inherited findings

  • The repository-wide Vitest run retains inherited failures in existing Zustand/playback tests caused by undefined localStorage.setItem; this is outside the PR3 diff and not used as a scoped PASS row.
  • Fallow retains unrelated pre-existing unused-export/unused-class findings; no unrelated allowlists were changed.
  • Build emitted existing Vite dynamic-import, chunk-size, and sourcemap warnings; build exited 0.
  • Native review notes outside this assigned correction set remain visible to the reviewer; this QA does not claim them fixed.

Log Errors

No runtime server/log surface applies to this pure controlled-boundary package. No new runtime errors were observed in the direct probe.

Frontend QA

  • Status: not applicable
  • Reason: PR3 adds no UI/editor shell or frontend interaction surface; PR6 owns the future shell.

Overall: PASS — PENDING TRUSTED JUDGE / NATIVE REVIEW

@codepress-dev

Copy link
Copy Markdown

👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session

@codepress-dev

Copy link
Copy Markdown

@Terminal@lightninglu10

Dispatched by judge-verification.

Work the Path to merge below. Reuse healthy exact-head verification environments; do not redeploy or restart unless stale or unhealthy.

Continue only when there is meaningful work to clear the blocker. If the path is already satisfied, the same blocker remains, or another judge pass would add no useful evidence, stop and report that instead of submitting another verification report.

Verification Judgment — PR #2 (local)

Verdict: ❌ NOT READY TO MERGE

PR Head SHA:212a18c2325122805f8d870979bb86f2128fce86

Summary: The report is bound to the live PR head and its covered execution rows are credible, but this head is not safe to merge. The adapter can report a committed operation as rejected when a synchronous editor or subscriber callback throws, frame translation returns both frame and legacy microsecond fields despite its frame-native contract, and a valid 128-character item ID cannot produce a ripple fragment. These are material code defects outside the report's covered rows.

Revision binding

  • Classification: SAME-SHA LATE BINDING
  • Report head:212a18c2325122805f8d870979bb86f2128fce86
  • Live PR head:212a18c2325122805f8d870979bb86f2128fce86
  • Audited checkout: clean detached checkout at 212a18c2325122805f8d870979bb86f2128fce86
  • Concrete evidence: The report captures git rev-parse HEAD -> 212a18c2325122805f8d870979bb86f2128fce86; git status --porcelain -> (empty). GitHub PR feat(editor): add CodePress command adapter boundary #2 reports head 212a18c2325122805f8d870979bb86f2128fce86, base staging at e2733fd4da40d5378c3caf11a7d2c5305fd55902; the judge checkout independently returned the same full SHA with empty status.
  • Rows carried forward: none
  • Rows reverified at live head: none
  • Rows still requiring verification: G1, G2, G3
  • Publication timing: GitHub's timeline records the report comment at 2026-08-16T06:47:40Z, after commit 212a18c2325122805f8d870979bb86f2128fce86 was present. This establishes publication ordering only; verifier checkout provenance comes from the captured rev-parse and clean-status output above.

Diff trigger inventory

SurfaceLocationCoverage
Canonical command validation and PR1 fixture compatibilitysrc/features/editor/codepress/contract.ts, src/features/editor/codepress/fixtures/B1, B2, B4, D1-D13
Atomic command adapter, revision/idempotency handling, and host publicationsrc/features/editor/codepress/adapter.ts, src/features/editor/codepress/interfaces.ts, src/features/editor/codepress/controlled-editor.tsB1, B4, G1
Edit engine command effects, ripple deletion, and fragment identitysrc/features/editor/codepress/edit-engine.tsB1, B2, B6, G3
Caption/document bridgesrc/features/editor/codepress/document.ts, src/features/editor/codepress/edit-engine.tsB2, B5, B6
Deterministic timing and frame-native translationsrc/features/editor/codepress/timing.ts, src/features/editor/codepress/translation.ts, src/features/editor/codepress/document.tsB3, B5, B6, G2
Controlled renderer boundarysrc/features/editor/codepress/interfaces.ts, src/features/editor/codepress/adapter.tsB3, B6
Boundary and quality configuration.fallowrc.jsonD1-D13

Per-item

#Verifier saidJudgmentEvidence
B1PASS✅ PASSL1 exercised the canonical core fixture through the bundled adapter, reached revision 8, and observed the normalized ripple delta. The clean-head diff does not contradict this result.
B2PASS✅ PASSL5 observed deterministic caption cue IDs/order and L6 rejected the canonical invalid cue path. The caption validation and edit paths are present in the audited diff.
B3PASS✅ PASSL7 observed exact integer/NTSC conversion and rejection of a non-aligned timestamp; L8 exercised the controlled renderer with an aligned frame and rejected invalid time.
B4PASS✅ PASSL2/L3/L4 observed replay, changed-payload idempotency conflict, and stale-revision retry metadata. The adapter stores operations by idempotency key and checks the current revision before applying.
B5PASS✅ PASSL9 covered numeric 29.97 and exact 30000:1001 documents with nonzero-start clip, text, and caption endpoints, returning the original frame indices. document.ts now computes endpoint frames separately.
B6PASS✅ PASSL10 observed NTSC ripple endpoint re-encoding and a subsequent move; L11 observed request_job rejected as unsupported_command with zero host calls and no revision change.
D1-D13PASS✅ PASSThe report records the focused suite, format/check/lint, boundary/dependency/provenance/build, and bundled-runtime checks as passing. No diff or GitHub record contradicts the aggregate result.
G1not covered; native review finding remains❌ FAILIn adapter.ts:371-403, this.document and the operation cache are updated before externalEditor.replaceDocument(), notify(), and telemetry delivery, but all of those calls remain inside the try whose catch returns rejected. A throwing editor or subscriber therefore produces a rejected result after the revision has committed; a synchronous telemetry throw has the same problem, and a rejected telemetry promise is unhandled. This contradicts the README's failed-command atomicity guarantee and has no throwing-callback coverage.
G2not covered; native review finding remains❌ FAILtranslation.ts:145-198 spreads the original microsecond item/properties and then adds frame fields. The runtime result therefore contains both representations even though FrameClipItem, FrameTextItem, FrameCaptionCue, and FrameItemPropertiesPatch omit the *_us fields. The frame-boundary contract is ambiguous and there is no assertion that the legacy fields are absent.
G3not covered; native review finding remains❌ FAILedit-engine.ts:227-233 truncates after appending the ripple suffix. For a valid 128-character ID, every candidate truncates back to the original ID, so a crossing ripple delete exhausts the suffix loop and rejects instead of producing the required fragment. No maximum-length collision test covers this valid input.

Overall status check

  • Verifier said: PASS
  • Result: NOT READY TO MERGE

Path to merge

RowClassOwnerAction that clears it
G1code-defectPR authorSeparate the state commit from editor/subscriber/telemetry delivery so observer failures cannot change an applied result into a rejection; handle telemetry rejections; add throwing-editor, subscriber, and telemetry tests covering revision/cache consistency.
G2code-defectPR authorConstruct frame-native items and property patches without spreading the microsecond fields, and add assertions that legacy *_us fields are absent.
G3code-defectPR authorReserve suffix space before truncating fragment IDs and add a crossing-ripple test with a 128-character source ID, including collision behavior.

Becomes ✅ READY TO MERGE when: G1, G2, and G3 are fixed and covered by focused tests, and a fresh exact-head verification report is posted for the resulting PR head with all blocking rows clear.

Dispatch: yes

What stood up

  • The report's full SHA and clean verifier capture match the live PR head.
  • B1-B6 provide credible live execution evidence for the canonical edits, captions, timing, fractional-rate bridge, ripple re-encoding, idempotency, renderer boundary, and explicit request_job rejection.
  • The remaining blockers are source-level defects visible in the audited clean checkout, not a report-format or publication-timing issue.

@lightninglu10
lightninglu10 marked this pull request as draft August 16, 2026 06:55
@lightninglu10

Copy link
Copy Markdown
Author

@codepress /judge-verification can you judge this verification?

Local Verification

PR Head SHA:86722c5

Verifier revision binding

  • git rev-parse HEAD -> 86722c5
  • git status --porcelain -> (empty)
  • Live PR feat(editor): add CodePress command adapter boundary #2 head: 86722c5; base: staging at e2733fd.
  • Live PR state: OPEN, draft=true; current delivery marker remains unverified/stale from the superseded head and was not mutated.
  • All three GitHub checks are completed SUCCESS at this exact head.
  • Runtime plane: local direct execution of the bundled controlled-boundary module; no HTTP, UI, event, or persistence trigger surface applies.

Behavioral Contract Results

#EffectEvidenceResultObservation
B1Canonical PR1 application, ripple, replay, and conflictslive-executionPASSL1-L2 passed.
B2Caption cue validation and orderinglive-executionPASSL3-L4 passed.
B3Deterministic timing and renderer alignmentlive-executionPASSL5-L6 passed.
B4Fractional endpoint round-trip and NTSC ripple re-encodinglive-executionPASSL7-L8 passed.
B5Explicit request_job host boundarylive-executionPASSL9 rejected unsupported with zero host calls.
B6Commit/result ordering isolates editor, subscriber, and telemetry failureslive-executionPASSL10-L11 applied and committed despite sync/async observer failures.
B7Frame-native field isolation and bounded max-length fragment IDslive-executionPASSL12-L13 passed.

Diff Trigger Inventory

SurfaceLocationCoverage
PR1 command/fixture/caption/conflict boundarycontract.ts; fixtures/; adapter.ts; edit-engine.tsL1-L4, D3, D13
Fractional timing/document/ripple boundarytiming.ts; document.ts; edit-engine.tsL5-L8, D3, D13
Renderer/host/request_job boundaryinterfaces.ts; adapter.ts; edit-engine.tsL6, L9-L11, D3, D13
Observer commit/result orderingadapter.tsL10-L11, D3, D13
Frame-native translationtranslation.tsL12, D3, D13
Bounded ripple ID allocationedit-engine.tsL13, D3, D13
Quality/build/provenance.fallowrc.json; package scriptsD1-D12

No declared cross-feature verification graph exists in this FreeCut repository.

Verification Contract Results

#AssertionPlaneEvidenceResultDetails
L1Canonical core fixture applies through bundled adapterlocallive-executionPASSstatus=applied, revision 8, ripple delta -500000us
L2Idempotency replay/conflict remains explicitlocallive-executionPASSapplied, replayed, idempotency_conflict
L3Caption cues apply in deterministic orderlocallive-executionPASScue IDs cue-hello,cue-next
L4Invalid caption cue is rejectedlocallive-executionPASSinvalid_request at commands[0].cues[0]
L5Integer and NTSC frame conversion is deterministiclocallive-executionPASSNTSC frame 30 = 1001000us; 33334us non-aligned
L6Controlled renderer rejects non-aligned timelocallive-executionPASSframe 30 request accepted; non-aligned rejected
L7Fractional document endpoint round-triplocallive-executionPASSnumeric 29.97 and exact 30000:1001 return frames [1,2,3]
L8NTSC ripple re-encodes endpoints and permits next operationlocallive-executionPASSvideo/caption [33367,66733], next move applied
L9request_job boundary is explicitlocallive-executionPASSunsupported_command; zero host calls; unchanged revision
L10Editor/subscriber/sync telemetry failures cannot reject committed operationlocallive-executionPASSapplied; revision 8; two subscriber calls; replayed
L11Async telemetry rejection is handledlocallive-executionPASSapplied; no unhandled rejection
L12Frame-native translation omits legacy microsecond fieldslocallive-executionPASSitem/property keys contain frame fields only
L13Max-length ripple fragment allocation is bounded/deterministiclocallive-executionPASScollision selects :ripple-2; all IDs <=128 chars
D1-D13Deterministic repository/runtime checkslocaltest-suitePASSFocused suite 22 tests, format/check/lint, boundary/dependency/legacy/wrapper/changed-health, build, provenance, diff, and runtime all passed.

Canonical QA Artifacts

  • Markdown report: /tmp/codepress-qa-verifier-runs/local-verification-report-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.md
  • Contract JSON: /tmp/codepress-qa-verifier-runs/local-verification-contract-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.json
  • Evidence JSONL: /tmp/codepress-qa-verifier-runs/local-verification-evidence-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.jsonl (L1-L13 live-execution plus D1-D13 deterministic-check records)
  • Artifact manifest JSON: /tmp/codepress-qa-verifier-runs/local-verification-artifact-manifest-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.json
  • Exact-head preflight: /tmp/codepress-qa-verifier-runs/local-verification-preflight-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.txt
  • Bundled runtime probe: /tmp/codepress-qa-verifier-runs/freecut-codepress-adapter-pr2-86722c597084df38bd61b0b5726395447062927c.cjs
  • Runtime summary: /tmp/codepress-qa-verifier-runs/local-verification-runtime-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.json
  • These are local non-visual artifacts; no screenshot/video upload is applicable.

Supplementary checks and inherited findings

  • Repository-wide Vitest localStorage failures remain inherited outside this PR3 diff and are not used as a scoped PASS row.
  • Build emitted existing Vite dynamic-import, chunk-size, and sourcemap warnings; build exited 0.
  • Native judge G1-G3 are covered by L10-L13 and focused regression tests in this exact head.
  • No unrelated allowlists/dependencies or successor work were changed.

Log Errors

No runtime server/log surface applies to this pure controlled-boundary package; no new runtime errors were observed.

Frontend QA

  • Status: not applicable
  • Reason: PR3 adds no UI/editor shell; PR6 owns the future shell.

Overall: PASS — PENDING TRUSTED JUDGE

@codepress-dev

Copy link
Copy Markdown

👋 Hey @lightninglu10! Spawning a verification judge session to help with your request. View session

@codepress-dev

Copy link
Copy Markdown

@Terminal@lightninglu10

Dispatched by judge-verification.

This judgment is READY TO MERGE at the current head. If the PR is still a draft, transition it to ready for review now with the guarded readiness transaction: codepress-policy ready-for-review --repo . --pr 2 (or node packages/delivery-policy/dist/cli.js ready-for-review --repo . --pr 2 when the CLI is not on PATH). It re-validates current-head QA and judge evidence, reconciles the delivery-status marker, and marks the PR ready so the native reviewer can dispatch. Do not call gh pr ready directly, and do not merge; merge authorization still requires the reviewer gate.

Verification Judgment — PR #2 (local)

Verdict: ✅ READY TO MERGE

PR Head SHA:86722c597084df38bd61b0b5726395447062927c

Summary: The report is bound to the live PR head with captured clean verifier provenance, and its live execution plus focused deterministic checks cover the material adapter boundary. The audited diff contains no remaining defect or missing blocking coverage, so this head is safe to merge.

Revision binding

  • Classification: SAME-SHA LATE BINDING
  • Report head:86722c597084df38bd61b0b5726395447062927c
  • Live PR head:86722c597084df38bd61b0b5726395447062927c
  • Audited checkout: clean detached checkout at 86722c597084df38bd61b0b5726395447062927c
  • Concrete evidence: The verifier captured git rev-parse HEAD -> 86722c597084df38bd61b0b5726395447062927c; git status --porcelain -> (empty); the judge detached checkout independently returned the same full SHA with empty status.
  • Rows carried forward: none
  • Rows reverified at live head: none
  • Rows still requiring verification: none
  • Publication timing: GitHub's timeline records the live-head commit before the report comment at 2026-08-16T07:13:27Z; the live-head commit metadata is 2026-08-16T07:02:45Z. This establishes publication ordering only; verifier checkout provenance comes from the captured commands above.

Diff trigger inventory

SurfaceLocationCoverage
Canonical PR1 command validation, fixture compatibility, and applicationsrc/features/editor/codepress/contract.ts, fixtures/, adapter.ts, edit-engine.tsB1, B2
Deterministic timing, fractional document conversion, and ripple re-encodingtiming.ts, document.ts, edit-engine.tsB3, B4
Renderer and explicit host/request boundaryinterfaces.ts, adapter.ts, edit-engine.tsB3, B5, B6
Commit ordering and observer isolationadapter.tsB6
Frame-native command translationtranslation.tsB7
Bounded deterministic ripple fragment identityedit-engine.tsB4, B7
Quality, build, provenance, and changed-health checks.fallowrc.json, package.json, repository scriptsD1-D13

Per-item

#Verifier saidJudgmentEvidence
B1PASS✅ PASSL1 directly executed the canonical core fixture through the bundled adapter and observed application at revision 8 with the expected ripple delta. L2 exercised replay and changed-payload idempotency conflict behavior.
B2PASS✅ PASSL3 observed deterministic caption cue ordering and L4 rejected the invalid caption cue at the expected request path.
B3PASS✅ PASSL5 observed deterministic integer and NTSC frame conversion, and L6 observed aligned renderer acceptance with non-aligned time rejection.
B4PASS✅ PASSL7 round-tripped nonzero-start fractional-rate endpoints, and L8 re-encoded NTSC ripple endpoints and accepted the next operation on the resulting document.
B5PASS✅ PASSL9 rejected request_job as an explicit unsupported boundary with zero host calls and no revision change.
B6PASS✅ PASSL10 observed commit success despite editor, subscriber, and synchronous telemetry failures; L11 observed handled asynchronous telemetry rejection with no unhandled rejection.
B7PASS✅ PASSL12 observed frame-native output without legacy microsecond fields, and L13 observed deterministic bounded fragment allocation for a maximum-length ID collision.
D1-D13PASS✅ PASSThe report records the focused 22-test suite, formatting/check/lint, boundary/dependency/legacy/wrapper/changed-health, build, provenance, diff, and runtime checks as passing. GitHub also reports all three checks SUCCESS at this exact head.

Overall status check

  • Verifier said: PASS
  • Result: READY TO MERGE

What stood up

  • The current head is exactly the reported head, with a captured clean verifier checkout and an independently audited clean detached checkout.
  • The final diff fixes the prior observer-commit, fractional-frame, frame-field, and maximum-length ripple-ID boundary defects; the focused regressions cover those paths.
  • No frontend QA is required because this PR adds no UI or editor shell.

@lightninglu10

Copy link
Copy Markdown
Author

@codepress /judge-verification can you judge this verification?

Local Verification

PR Head SHA:86722c597084df38bd61b0b5726395447062927c

Verifier revision binding

  • git rev-parse HEAD -> 86722c5
  • git status --porcelain -> (empty)
  • Live PR feat(editor): add CodePress command adapter boundary #2 head: 86722c5; base: staging at e2733fd.
  • Live PR state: OPEN, draft=true; current delivery marker remains unverified/stale from the superseded head and was not mutated.
  • All three GitHub checks are completed SUCCESS at this exact head.
  • Runtime plane: local direct execution of the bundled controlled-boundary module; no HTTP, UI, event, or persistence trigger surface applies.

Behavioral Contract Results

#EffectEvidenceResultObservation
B1Canonical PR1 application, ripple, replay, and conflictslive-executionPASSL1-L2 passed.
B2Caption cue validation and orderinglive-executionPASSL3-L4 passed.
B3Deterministic timing and renderer alignmentlive-executionPASSL5-L6 passed.
B4Fractional endpoint round-trip and NTSC ripple re-encodinglive-executionPASSL7-L8 passed.
B5Explicit request_job host boundarylive-executionPASSL9 rejected unsupported with zero host calls.
B6Commit/result ordering isolates editor, subscriber, and telemetry failureslive-executionPASSL10-L11 applied and committed despite sync/async observer failures.
B7Frame-native field isolation and bounded max-length fragment IDslive-executionPASSL12-L13 passed.

Diff Trigger Inventory

SurfaceLocationCoverage
PR1 command/fixture/caption/conflict boundarycontract.ts; fixtures/; adapter.ts; edit-engine.tsL1-L4, D3, D13
Fractional timing/document/ripple boundarytiming.ts; document.ts; edit-engine.tsL5-L8, D3, D13
Renderer/host/request_job boundaryinterfaces.ts; adapter.ts; edit-engine.tsL6, L9-L11, D3, D13
Observer commit/result orderingadapter.tsL10-L11, D3, D13
Frame-native translationtranslation.tsL12, D3, D13
Bounded ripple ID allocationedit-engine.tsL13, D3, D13
Quality/build/provenance.fallowrc.json; package scriptsD1-D12

No declared cross-feature verification graph exists in this FreeCut repository.

Verification Contract Results

#AssertionPlaneEvidenceResultDetails
L1Canonical core fixture applies through bundled adapterlocallive-executionPASSstatus=applied, revision 8, ripple delta -500000us
L2Idempotency replay/conflict remains explicitlocallive-executionPASSapplied, replayed, idempotency_conflict
L3Caption cues apply in deterministic orderlocallive-executionPASScue IDs cue-hello,cue-next
L4Invalid caption cue is rejectedlocallive-executionPASSinvalid_request at commands[0].cues[0]
L5Integer and NTSC frame conversion is deterministiclocallive-executionPASSNTSC frame 30 = 1001000us; 33334us non-aligned
L6Controlled renderer rejects non-aligned timelocallive-executionPASSframe 30 request accepted; non-aligned rejected
L7Fractional document endpoint round-triplocallive-executionPASSnumeric 29.97 and exact 30000:1001 return frames [1,2,3]
L8NTSC ripple re-encodes endpoints and permits next operationlocallive-executionPASSvideo/caption [33367,66733], next move applied
L9request_job boundary is explicitlocallive-executionPASSunsupported_command; zero host calls; unchanged revision
L10Editor/subscriber/sync telemetry failures cannot reject committed operationlocallive-executionPASSapplied; revision 8; two subscriber calls; replayed
L11Async telemetry rejection is handledlocallive-executionPASSapplied; no unhandled rejection
L12Frame-native translation omits legacy microsecond fieldslocallive-executionPASSitem/property keys contain frame fields only
L13Max-length ripple fragment allocation is bounded/deterministiclocallive-executionPASScollision selects :ripple-2; all IDs <=128 chars
D1-D13Deterministic repository/runtime checkslocaltest-suitePASSFocused suite 22 tests, format/check/lint, boundary/dependency/legacy/wrapper/changed-health, build, provenance, diff, and runtime all passed.

Canonical QA Artifacts

  • Markdown report: /tmp/codepress-qa-verifier-runs/local-verification-report-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.md
  • Contract JSON: /tmp/codepress-qa-verifier-runs/local-verification-contract-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.json
  • Evidence JSONL: /tmp/codepress-qa-verifier-runs/local-verification-evidence-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.jsonl (L1-L13 live-execution plus D1-D13 deterministic-check records)
  • Artifact manifest JSON: /tmp/codepress-qa-verifier-runs/local-verification-artifact-manifest-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.json
  • Exact-head preflight: /tmp/codepress-qa-verifier-runs/local-verification-preflight-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.txt
  • Bundled runtime probe: /tmp/codepress-qa-verifier-runs/freecut-codepress-adapter-pr2-86722c597084df38bd61b0b5726395447062927c.cjs
  • Runtime summary: /tmp/codepress-qa-verifier-runs/local-verification-runtime-pr2-86722c597084df38bd61b0b5726395447062927c-1786864308908.json
  • These are local non-visual artifacts; no screenshot/video upload is applicable.

Supplementary checks and inherited findings

  • Repository-wide Vitest localStorage failures remain inherited outside this PR3 diff and are not used as a scoped PASS row.
  • Build emitted existing Vite dynamic-import, chunk-size, and sourcemap warnings; build exited 0.
  • Native judge G1-G3 are covered by L10-L13 and focused regression tests in this exact head.
  • No unrelated allowlists/dependencies or successor work were changed.

Log Errors

No runtime server/log surface applies to this pure controlled-boundary package; no new runtime errors were observed.

Frontend QA

  • Status: not applicable
  • Reason: PR3 adds no UI/editor shell; PR6 owns the future shell.

Overall: PASS — PENDING TRUSTED JUDGE

@lightninglu10
lightninglu10 marked this pull request as ready for review August 16, 2026 07:22
@lightninglu10
lightninglu10 merged commit 6d6e5a4 into stagingAug 16, 2026
3 checks passed
@codepress-dev

Copy link
Copy Markdown

Software Factory status

Status:MERGED
PR head:86722c597084df38bd61b0b5726395447062927c
Status revision:2026-08-18T07:43:38.963425+00:00
QA:PASS
Judge:PASS
Review:PENDING
Required checks:PASS
Mergeability:UNKNOWN
Current status reason: The PR head changed; earlier QA or READY evidence is superseded.

READY is effective only when current-head QA and judgment are PASS, the current-head review is APPROVED, required checks pass, and GitHub reports the PR mergeable.

Verification history

  • QA PASS on 86722c597084df38bd61b0b5726395447062927cSUPERSEDED — reason: head change (audit comment)
  • JUDGE PASS (READY) on 86722c597084df38bd61b0b5726395447062927cSUPERSEDED — reason: head change (audit comment)
  • QA PASS on 86722c597084df38bd61b0b5726395447062927cSUPERSEDED — reason: newer_qa_result (audit comment)
  • JUDGE FAIL on 212a18c2325122805f8d870979bb86f2128fce86SUPERSEDED — reason: head change (audit comment)
  • QA PASS on 212a18c2325122805f8d870979bb86f2128fce86SUPERSEDED — reason: head change (audit comment)
  • JUDGE PASS (READY) on 11d63a96eb8cc3bc4fd8a1bbe17499ec0175295cSUPERSEDED — reason: head change (audit comment)
  • QA PASS on 11d63a96eb8cc3bc4fd8a1bbe17499ec0175295cSUPERSEDED — reason: head change (audit comment)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@lightninglu10