Skip to content

Reject trailing-newline processing policy tokens - #2938

Merged
jeky-codex-lane[bot] merged 12 commits into
mainfrom
issue-2257/policy-absolute-anchors
Sep 11, 2026
Merged

Reject trailing-newline processing policy tokens#2938
jeky-codex-lane[bot] merged 12 commits into
mainfrom
issue-2257/policy-absolute-anchors

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Refs #2257

Summary

  • reject processor IDs and currencies that end with LF by using absolute .NET regex anchors
  • add deterministic LF regression coverage for both policy token types
  • correct the CF-03 contract comment so later persistence retains canonical policy data beside its digest

Scope

This is the recorded CF03-1 contract correction only. It does not add jobs, runs, persistence, routing, processor dispatch, or runtime writers.

Verification

Implementation head d49866d:

  • fail-first focused regression: both LF cases failed before the production change
  • focused ProcessingPolicySnapshotTests: 13 passed
  • full Taskdeck.Application.Tests: 4,303 passed
  • full backend solution: 9,353 passed, 5 skipped, 0 failed
  • solution Release build: passed with 10 pre-existing nullable warnings
  • git diff --check: passed

Base-refresh head 0b5ae2b:

  • merged current main a0d05da without conflict
  • current-main changes do not touch either policy file
  • focused ProcessingPolicySnapshotTests: 13 passed
  • full Taskdeck.Application.Tests: 4,303 passed
  • git diff --check: passed
  • final PR diff against current main remains the same two claimed files

Residual

The parent CF-03 acceptance remains open. CF03-2 still needs the ProcessingJob/ProcessingRun persistence and immutable policy payload contract.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 10, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-11T00:40:43.691752Z 745459b New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Chris0Jeky

Chris0Jeky commented Sep 10, 2026

Copy link
Copy Markdown
Owner Author

Fresh-context review completed at d49866d against base 3105aed.

Result: no CRITICAL or HIGH findings.

Evidence:

  • runtime regex probe confirmed the old anchors accept terminal LF and the new absolute anchors reject LF and CRLF
  • canonical processor IDs and currencies still match
  • canonicalizer code is byte-for-byte unchanged from the base
  • focused ProcessingPolicySnapshotTests: 13 passed
  • git diff --check: passed

The review was read-only. Full backend and hosted CI are separate gates.

@Chris0Jeky

Chris0Jeky commented Sep 10, 2026

Copy link
Copy Markdown
Owner Author

Fresh-context interaction review completed at 0b5ae2b against current base a0d05da.

Result: no CRITICAL or HIGH findings.

Evidence:

  • merge parents are the reviewed implementation and current main
  • final base-relative diff contains exactly the two claimed policy files
  • both absolute anchors and both LF regressions remain intact
  • canonicalizer serialization and digest code is unchanged
  • focused ProcessingPolicySnapshotTests: 13 passed
  • git diff --check: passed

A separate currency regex in ProcessorManifestValidator remains outside this PR and has no current snapshot integration path. It is being reconciled as follow-up rather than expanding this review cycle. Hosted CI at the refreshed head remains pending.

@Chris0Jeky

Chris0Jeky commented Sep 10, 2026

Copy link
Copy Markdown
Owner Author

Latest base-interaction extension completed at 2ff441b against a61ed63.

Result: no CRITICAL or HIGH findings.

  • merge parents are the prior reviewed head and current main
  • intervening Document capture text bytes and pin reconciliation comparison #2933 delta touches only CaptureTextComparison, its tests, and CAPTURE.md
  • final diff remains the same two policy files, 7 additions and 3 deletions
  • policy implementation/test blobs are unchanged from the prior reviewed head
  • focused tests: 13 passed
  • full Application tests: 4,309 passed
  • git diff --check: passed

Hosted CI at this exact head is now the remaining technical gate.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Current-base interaction extension at head f55f50a4b09363e08d95f07e0d3f2f22f0126e63 against base be0e1349f21fda89970b93321de0309124ee83f2: no CRITICAL/HIGH finding and no review-cycle reopen.

The intervening base delta changes only five frontend Review announcement files. It has no backend path or runtime contract into ProcessingPolicySnapshot; the backend tree is byte-identical to the exact tree that completed 9,385 passed, 5 skipped, 0 failed, and the refreshed focused policy suite passes 13/13. git diff --check passes. Hosted exact-head CI remains pending.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Current-base interaction extension at head 6396493851c79e107f36452801393ca636713cb7 against base fad49351fc6b307c0f64e0369a8f6b3c8d8aa8cd: no CRITICAL/HIGH finding and no review-cycle reopen.

The intervening base delta adds Inbox polling through Capture DTO/service/API and frontend surfaces. It does not touch processor policy contracts, project references, or any call path into ProcessingPolicySnapshot. The refreshed focused policy suite passes 13/13; the full Application project passes 4,314/4,314; git diff --check passes. Exact-head hosted CI is pending.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Current-base interaction extension at head 6a64c4df3e760369e2e96bc28cdbaa26284db442 against base 7695211a0d31590c19845fd0e4cd559be521384e: no CRITICAL/HIGH finding and no review-cycle reopen.

The base adds Card work-item-type behavior across MCP, Application, Domain, persistence, and frontend, but contains no processor-policy symbols, project-reference change, or path into ProcessingPolicySnapshot. The focused policy suite passes 13/13; full Application passes 4,317/4,317; git diff --check passes. Exact-head hosted CI is pending.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Current-base interaction extension at head fc05cf914bc2c62689da768bd9d8c49852ab6a33 against base 93ca1cd21a34503c1e773b7447c79b034e99b90e: no CRITICAL/HIGH finding and no review-cycle reopen.

The base delta only excludes archived cards in WorkspaceObservationReader and adds API tests. It has no processor-policy or manifest path. The Application tree is byte-identical across the merge, the focused policy suite passes 13/13, and git diff --check passes. Exact-head hosted CI is pending.

@Chris0Jeky

Copy link
Copy Markdown
Owner Author

Current-base interaction extension at head 22328da50f2a16c2041b5319cb7ab65235b45fa2 against base 8b4205f1bdc0b4f7fccd1974709d3d7f2a29659d: no CRITICAL/HIGH finding and no review-cycle reopen.

The base adds the sibling manifest-validator correction from PR #2954. Both validators now use the same absolute-anchor ID and currency grammars, have no shared mutable state or runtime call path, and retain separate deterministic terminal-LF regressions. The focused policy suite passes 13/13; full Application passes 4,319/4,319; git diff --check passes. Exact-head hosted CI is pending.

@jeky-codex-lane

Copy link
Copy Markdown
Contributor

Current-base qualification update

  • base: 86c6f1bdf9914b7809e77183187b8e94659acc39
  • head: 2cb91387ad295997ab786c0f92d56cad232a5edb
  • base delta: merged Add same-board card hierarchy with explicit child detachment #2965 Card parent hierarchy
  • interaction review: no direct CRITICAL/HIGH finding; the delta does not touch Processing policy code, policy tests, project dependencies, or policy persistence
  • final PR diff: ProcessingPolicySnapshot.cs and ProcessingPolicySnapshotTests.cs only

Proof at this head:

  • focused policy tests: 13 passed, 0 failed
  • migration bootstrap: 25 passed, 0 failed
  • dotnet test backend/Taskdeck.sln -c Release -m:1: 9,442 passed, 5 skipped, 0 failed
  • git diff --check: passed

Hosted exact-head CI and the post-push aging floor have restarted. This is not a merge claim until both complete.

@jeky-codex-lane

Copy link
Copy Markdown
Contributor

Current-base qualification for exact head 745459b4056461588234c77056b386565f436423 against origin/main 02abedfe983b700eb3619ad2d161382820f54918:

  • Merged the new base deliberately. The intervening delta changes only active-card WIP counting in ExternalImportService and ProposalConflictDetector plus their tests; it does not touch or reference Processing policy snapshots.
  • dotnet test backend/tests/Taskdeck.Application.Tests/Taskdeck.Application.Tests.csproj -c Release -m:1 --filter FullyQualifiedName~ProcessingPolicySnapshotTests: 13 passed.
  • dotnet test backend/Taskdeck.sln -c Release -m:1: 9,448 passed, 5 expected skipped, 0 failed (Domain 1,674; Application 4,325; API 3,142 + 4 skipped; CLI 243; Architecture 28 + 1 skipped; Integration 36).
  • Fresh-context bounded interaction review found no CRITICAL/HIGH finding.
  • git diff --check origin/main...HEAD: clean.

This push resets exact-head hosted qualification. No acceptance scope or issue-closing link changed.

@jeky-codex-lane
jeky-codex-lane Bot merged commit 51d6214 into main Sep 11, 2026
36 checks passed
@jeky-codex-lane
jeky-codex-lane Bot deleted the issue-2257/policy-absolute-anchors branch September 11, 2026 01:21
@github-project-automation github-project-automation Bot moved this from Pending to Done in Taskdeck Execution Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant