Fix: preserve platform admission for catalog publisher authority (#150) - #157
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 32 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (12)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Validation receipt for final pushed head
The final commit changes only paragraph formatting in the publication contract. No runtime source, test or dependency changed after the complete local campaign. Earlier descriptor-probe Hosted run 37054126009 is queued for the final SHA. The earlier run was cancelled by normal concurrency handling after the final push and is not an acceptance receipt. CodeRabbit reports a rate limit; its green status is not approval. No merge has been performed. |
Code Lawyer finding — current consumer documentationCandidate:
This is a verified documentation mismatch, not a runtime failure. @codex: second-opinion input is welcome; a hosted review quota is not approval. The authorized independent Codex review is in progress and its full report will be posted. |
|
To use Codex here, create an environment for this repo. |
Independent review of Keep PR #157Reviewer: independent Codex review agent Repository: FindingsP4 — Update the constructor's actual consumer description. No demonstrated runtime correctness, durability, identity, authority, or integration defect was found in the scoped candidate. The P4 documentation correction is the only requested change; its low severity should not be inflated into a runtime failure. Verification Checklist: runtime paths
All abbreviated adapter filenames in the table are under Verification Checklist: history and every mergeThe original common main is
The prior #99 narrower contract is already in the common base: preserve/refuse incomplete retention stages before effects, cooperating writer assumptions, fresh retries, and explicit uncertainty instead of rollback. #150 does not alter its code or documentation. This review does not reinterpret that accepted contract as arbitrary out-of-band namespace isolation, inode-conditional unlink, or rollback after effects. Verification Checklist: constants, numbers, and documentation
No new timing, throughput, recovery-time, power-loss, buffer-performance, percentile, allocation optimization, or measurable speedup claim is introduced. Missing ordinary per-test ceilings and sandbox controls remain disclosed enforcement gaps; none is fabricated from green execution. Raw RED/GREEN and calibration inspectionRead individual failures and restored results, not merely mutation labels or case counts. External receipts below use relative coordinates in the retained review evidence archive; source-attestation limitations are stated separately.
Historical external raw logs do not themselves embed full source SHA and launch commands. Their SHAs come from versioned evidence/commit separation and PR receipts; this reviewer does not represent them as independently source-attested reruns. Committed normalized #171 receipts deliberately replace container prefixes while preserving diagnostics. Fresh candidate execution is bound through an exact copied-tree manifest, separate from those historical attestations. Standards, queue, execution, and limitsRead applicable project AGENTS.md, the supplied global atomic-work agreement, all binding Testing Standards, and the enforcement profile. The bug-fix declaration, owner, named oracles, medium filesystem laws, small/static calibration subjects, retained failures, finite exploration, fixture ownership, deletion criterion and retirement conditions are present. No new parser, durable format, dependency, optimization, unsafe code, unbounded content allocation, public boolean parameter, lossy cast or changed protocol arithmetic is introduced by #150. Existing reviewed modules over the target size are not misrepresented as newly created policy compliance. Markdown physical-line wrapping rules from another repository were not imposed; the actual local lint profile applies. The removed source-string test is inspected at its old revision: it freezes one signature and public declarations and misses the feature-gated producer. Public runtime refusal and positive staging laws replace its actual claimed promise. This is the documented failed-calibration deletion criterion, not deletion of a failing product regression. No test result/count substitutes for runtime authority evidence. GitHub inspection: supplied fully paginated queue read; live REST comments/reviews refreshed with pagination; live GraphQL reviewThreads returned no nodes and Executed by this reviewer: read-only Git diff/history/blob/identity/status checks, whole finite #150 diff, source searches/reads, raw evidence inspection, independent golden byte-length decoding, Inspected only: parent executor's full fresh Docker campaign, Live hosted checks at reviewed head all pass: Rust quality gates, documentation/workflow integrity, dependency policy and runtime fuzz smoke, run Coverage boundaries: scoped runtime paths and incoming merge integration were audited; this is not an exhaustive audit of the entire Keep repository, every historical #99 fault transition, another OS, arbitrary remount/out-of-band namespace attacks, physical power loss, every possible input/schedule, or per-test enforcement. The repository's disclosed ordinary ceiling/isolation gaps are not approved waivers or new compliance claims. No performance benchmark was run because no optimization or numeric performance promise is changed. Future documentation-only correction should retain runtime tree and receive exact-successor delta review plus relevant doc/static and hosted checks. REQUEST CHANGES |
Independent exact-successor review: Keep PR #157Reviewer: independent Codex agent Repository FindingsNo remaining actionable findings in the finite successor. Prior P4 is closed. The public rustdoc now accurately describes the legacy route as accepting an already retained writer lock and the catalog crash campaign as using ordinary platform initialization and Verification Checklist: successor delta and adoption
Validation and remaining gateThe complete predecessor Docker runtime campaign ended successfully on its exact copied runtime tree. Since this successor changes only comments, its product code, regression laws, raw calibrations and merged implementations are identical; those runtime receipts remain relevant evidence with their original source coordinates. No repeated full campaign is represented as having run on the successor. Inspected the fresh At this review's live query, all four successor hosted jobs in run All prior scope limits remain: static review plus inspected execution is not reviewer-owned runtime execution, process death is not physical power loss, finite paths/input families do not prove all schedules or inputs, and this is not a repository-wide or speculative namespace-hardening audit. No mandatory changed area remains unreviewed in this finite documentation delta. APPROVE |
Code Lawyer closure — platform admissionFinal candidate:
Full candidate validation at The final successor changes rustdoc only. Its copied tree The authorized independent reviewer was configured as GPT-6.1-sol with high reasoning. The full initial report contains every traced path, merge-parent comparison, constant/claim verification and raw calibration coordinates. The final delta report confirms the resulting exact head and closes its only requested change. Limits remain explicit: no arbitrary out-of-band namespace isolation, ambient alias-history attestation, physical power-loss evidence, unrelated adapter certification, new performance claim, or universally enforced test resource sandbox is asserted. The ineffective source-spelling test was replaced with public runtime laws under its recorded failed-calibration deletion criterion. No changes-requested review or actionable inline thread remains. No repository protection bypass is authorized or used. |
Problem
With
repository-tasksenabled, a caller could acquire a writer lock on a filesystem that production initialization refuses, then obtain a realFilesystemCatalogPublisherthroughopen_unchecked_for_repository_tasks. Lock ownership was being converted into production platform authority without admission, violating KEEP-CATALOG-007 and T-12.2.Change and invariant
Change kind: bug fix. The legacy constructor now checks the production profile on its retained root, including existing protocol directories, and requires strict root identity before creating admission. It reopens the pinned capability readably because profile ioctls cannot operate on an
O_PATHdescriptor. Unsupported platforms return the originalio::Errorbefore publisher construction. The existing public signature remains; its corrected behavior is explicitly documented.The catalog crash harness now opens its publisher through ordinary initialization and admission. Publication crash runs require actual admitted ext4 scratch storage; they retain their fault decorators, phase ordering and restart oracles. No separate unchecked production publisher or caller-provided proof flag is introduced. Other public migration, version-two and recovery admission boundaries are explicitly outside this finite publisher inventory.
RED → GREEN evidence
6051abb25a9fd33ae7ee0de5614514b709a4d82a; regression commit:1ffdf5a. A real tmpfs root produces exactAdmitPlatform/Unsupported, but the old alternate route returns a publisher and failsrefused platform acquired public publisher authority.f7956c0. The same negative law passes in debug/release. The positive law opens the alternate route on genuinely admitted ext4, writes a stage and checks exact retained bytes.EBADFdiagnostics from probing anO_PATHdescriptor were retained and corrected through capability-relative reopening, not a weakened expectation.fa06adfde89b70be5aaf7356206b7d8c1fbce169. CodeRabbit is rate limited and has supplied no approval.The source-text architecture test stayed green during the demonstrated bypass. It is removed under the failed-calibration deletion criterion and replaced by the public runtime laws. Existing namespace/no-follow, writer exclusion, publication, corruption and restart evidence remains. See the evidence record and the admission rationale.
Final landing validation
Normal integration
657593fe50c824dd31dc328bf9e696183ef20767passed the full copied-Docker validation chain and all four hosted checks. Independent Codex review identified one inaccurate constructor-consumer sentence; rustdoc-only successor3626f6e2677a1d6d3af08b88245584800596ff55corrects it without changing runtime code or test expectations. Fresh copied-Docker documentation, doctests, formatting, source structure and all-feature Clippy pass on the successor. The complete independent review and exact-successor APPROVE include the mandatory verification checklist. Final-head hosted run 37147862754 completed with all four required jobs successful on the final head; older green runs were not substituted for it. CodeRabbit remains rate-limited.Compatibility and limits
No durable format, identity, publication order or dependency changes. A formerly accepted unsupported repository-task platform now refuses intentionally. The pinned-root route validates that capability, not the historical spelling or alias history of the earlier lock-acquisition path. No arbitrary raw namespace isolation or power-loss guarantee is added. No performance improvement is claimed; profile inspection adds bounded filesystem metadata work during construction.
This branch started from
origin/mainat6051abband incorporated main182e49520f98c6035828a739dcf3c224df535b84through normal merge657593fe50c824dd31dc328bf9e696183ef20767. Both documentation conflicts retain the platform-admission, sealed-stage observation (#158) and partial-seal recovery (#172) contracts. It does not depend on PR #156. Original roadmap checkboxes are unchanged.Closes #150. Refs #131, #132.