Skip to main content

PortunusMCP Sentinel

Current v93 accepted Phase 22 closeout

Phase 22 is technically complete under the explicitly accepted revised scope. The user accepted the delivered V92 technical proposal, including all historical and practical limitations. Proxmox remains unsupported and recovery is deferred; its original and exposed failures remain failed. Ordinary FAF completion within 1,800 seconds remains unestablished; V68 remains unapproved and unimplemented.

The accepted-closeout packet is v93-accepted-closeout/. Its immutable acceptance receipt and 493-row audit preserve all previous evidence: 30 explicitly accepted limitation rows, two existing paid/pilot deferrals and unchanged raw measurements. The supplemental delivery-verification and final-audit receipts bind actual closeout completion to the exact delivered revision. Technical acceptance and that verified delivery are distinct events; the sealed audit preserves its honest pre-delivery state.

Unchanged engineering at 5142a3f retains 2,596 tests / 36 skips locally and in all 12 hosted suites, 29 normal jobs/docs, 90.28% combined / 86.23% branch coverage, six zero-call production replays and 19 runtime bindings. Taskwarrior and earlier qualified conditions retain their actual measured sources and narrow qualifications. Current Proxmox: six completed observations / three equal ordered pairs, two missed vulnerable reads and four unsupported negatives. No failure becomes a retroactive pass.

Git remains 312/1,040 incomplete, 728 deferred; the 396-request paid benchmark and pilots remain user-deferred, Phase 21 incomplete and Phase 24/15 unchanged. No new correction, scan, profile, retry, comparator, target execution or paid call occurred. Historical spend $0.071799; zero new paid calls. Accepted Phase 22 completion does not authorize merge, ready-state change, release, outreach, launch or Phase 23.

Historical v92 technical review: Proxmox limitation accepted, technical acceptance pending

The user explicitly approved retaining Proxmox upload-root as unsupported and deferring further recovery. Its original and exposed failures remain failed: at current 5142a3f, six observations completed with three equal ordered pairs, but both vulnerable reads were missed and all four fixed/safe paths were unsupported. The exact decision is recorded in the V92 Proxmox limitation receipt. No further correction, scan, profile, retry, comparator, target execution or paid call ran.

The complete technical acceptance packet is v92-technical-acceptance/. All 490 requirements retain exact evidence: six Proxmox limitation rows are explicitly accepted; 24 other historical/practical limitations await technical acceptance. Every raw failure, unresolved surface, original qualification and closed budget remains visible. Taskwarrior and earlier qualified conditions retain their actual measured sources; exposed follow-ups do not establish fresh accuracy.

Unchanged engineering retains 2,596 tests / 36 skips locally and in all 12 hosted suites, 29 normal jobs/docs, 90.28% combined / 86.23% branch coverage, six zero-call production replays and 19 runtime bindings. The 105 unaffected V87 observations retain original source/report identities and compatibility proof. This review adds affected documentation/package checks, not a new hosted code pass.

Ordinary FAF completion within 1,800 seconds remains unestablished; its six approved uncapped observations took 2,297.758–2,735.386 seconds. The proposal explicitly leaves V68 unapproved and unimplemented. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark/pilots remain user-deferred, Phase 21 incomplete and Phase 24/15 unchanged. Historical spend $0.071799; zero new paid calls. Phase 22 remains incomplete until separate explicit human technical acceptance of the delivered complete packet and subsequent verified accepted-closeout delivery. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v91 Proxmox regression: failed gate, disposition pending

The approved six Proxmox observations at engineering-tested 5142a3f completed with all three entire ordered pairs equal, verified cleanup and zero remaining budget. Both vulnerable reads were missed; all four fixed/safe observations remain unsupported. All six complete reports equal their failed 884d376 references; zero findings, six metadata warnings and six unsupported registration surfaces are fully source-assessed. Raw failures remain unchanged.

Source review identifies the conservative builtin-protection guard rejecting importlib.metadata package-version imports when literal dictionary copies occur. This is a sufficient source-visible rejection, not a runtime trace or proof that removing it establishes downstream support. No further correction, scan, profile, retry, comparator or paid call occurred during this continuation.

Unchanged engineering retains 2,596 tests / 36 skips locally and in all 12 hosted suites, 29 normal jobs/docs, 90.28% combined / 86.23% branch coverage, six zero-call production replays and 19 runtime bindings. The 105 unaffected V87 observations retain their original source/report identities and compatibility proof. This continuation adds assessment and affected docs/package verification, not a new hosted code pass or speedup claim.

All 486 requirements and 30 unaccepted limitation proposals remain. The concrete next decision is whether to retain Proxmox as unsupported for Phase 22 or continue focused recovery. Neither is inferred from numerical approval. Ordinary FAF completion within 1,800 seconds remains unestablished; V68 is unapproved/unimplemented. Phase 22 is incomplete: failed-gate disposition, explicit human technical acceptance and verified accepted-closeout delivery remain. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged. Historical spend $0.071799; zero new paid calls. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v89 literal metadata correction: engineering passed, regression approval pending

The approved V87 regression at 884d376 completed 111 observations / 48 equal entire ordered pairs, with verified cleanup and zero remaining budget. Taskwarrior, Lightning, Engram and prior Python conditions retain their exact qualifications, including two Meta nominal-fixed operator errata. Proxmox still fails: two missed vulnerable reads and four unsupported negatives. All 3,959 findings, 343,791 diagnostic occurrences, 5,686 surfaces and complete ordered differences are assessed. Ten Meta reports retain 268 assessed changed occurrences; original failures remain.

The authorized literal metadata correction is engineering-verified at 5142a3f: 2,596 tests / 36 skips locally and all 12 hosted suites, 29 normal jobs and docs, coverage 90.28% combined / 86.23% branch-only. Six zero-call production requests and 19 approved runtime bindings pass. Literal dictionary copies preserve dispatch only with proved builtin, mapping and mutation/escape boundaries. Initial deletion and typing failures remain preserved. No current candidate corpus scan or speedup is claimed.

The exact six-observation Proxmox regression is unapproved and unexecuted: three unchanged exposed inputs, vulnerable/fixed/safe then repeat, three entire ordered pairs. Normal 1,800-second input / 10-second Semgrep / 15-second cleanup / four-worker limits remain; 200 minutes plus 15 seconds outer cleanup is a worst-case cap. Source-only inventory proves the other 105 V87 observations cannot reach the changed metadata code; their original 884d376 report/source bindings remain, with no new scans.

All 479 requirements and 28 unaccepted limitation proposals remain. Ordinary FAF completion within 1,800 seconds is unestablished; V68 stays unapproved/unimplemented. Phase 22 is incomplete, pending the remaining actual gate, updated complete review, explicit human technical acceptance and verified accepted-closeout delivery. Git remains 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. Historical spend $0.071799; zero new paid calls. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v86 correctness recovery: engineering passed, regression approval pending

The approved Python module-dispatch and conservative global receiver correction is engineering-verified at 884d376: 2,553 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs plus docs, combined coverage 90.26%, branch-only 86.20%. Six zero-call production requests and 19 approved runtime component bindings pass. The failed 8f0639f candidate, its 45-pass interrupted local suite and cancelled CI remain preserved. Candidate 1ee96cb passed its 2,549/36 local suite, then failed a class-call mutation control; its CI was cancelled. The final correction removes that unproved class-call exception. No speedup is claimed.

The exact 111-observation exposed regression is unapproved and unexecuted: 12 Proxmox/Taskwarrior, 12 Lightning/Engram and 87 earlier Python observations, 63 input records across 10 existing repositories, 48 entire ordered pairs and 15 development singles. Normal 1,800-second input / 10-second Semgrep / 15-second cleanup / four-worker limits remain; the 3,455-minute outer cap is a worst-case bound, not an estimate. No new repository, retry, profile, comparator, target execution or paid call.

All 463 requirements retain previous states and evidence; 26 limitation proposals remain unaccepted. Original V80 Proxmox misses and unsupported negatives remain failed. Actual corrected-source support is pending regression. Historical V73/V75 results remain bound to cec0322; ordinary FAF completion within 1,800 seconds remains unestablished. V68 is unapproved and unimplemented.

Phase 22 remains incomplete, pending actual affected regression, explicit human technical acceptance and verified accepted-closeout delivery. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged. Historical spend $0.071799; zero new paid calls. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v81 technical review: unseen check complete, one failed gate

The separately approved V80 check completed 12 observations / six equal ordered pairs at cec0322, using normal 1,800s input / 10s Semgrep / 15s cleanup and four-worker limits. Taskwarrior passes narrow shell discrimination; Proxmox misses the vulnerable upload read and leaves both negatives unsupported on each pass. Its computed module-table dispatcher remains unsupported. All four findings, 504 diagnostics, 12 surfaces, 18 contexts and 14 ordered comparisons are assessed. The initial V78 metadata failure remains one incomplete before analysis, zero reports, eleven unstarted closed. Both budgets are closed; zero new paid calls or target execution.

All 448 requirements and 26 unaccepted limitation proposals remain explicit. Existing V73/V75 retain 205 exposed observations / 95 pairs; unchanged engineering retains 2,450 tests / 36 skips, all 12 hosted suites, 29 normal jobs/docs, six captured production requests and 19 runtime bindings. Normal FAF completion within 1,800s remains unestablished; V68 is unopened. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged.

Phase 22 remains incomplete until explicit human technical acceptance of artifacts/phase22/integration/v81-technical-acceptance/, including the failed Proxmox gate and all historical/practical limits, and verified accepted-closeout delivery. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v79 metadata correction: new evaluation approval pending

The approved V77 sequence stopped in V78 before scanner analysis: one incomplete, zero reports, eleven unstarted closed, zero remaining, with verified cleanup. Strict identity comparison caught three omitted optional null fields in the proposal. The corrected proposal binds complete validated inputs; all six source identities and 36 negative controls pass. Scanner, source archives, configurations, conditions, order and normal limits remain unchanged. The original failed attempt remains visible.

Two repositories / six records / twelve proposed observations at cec0322 are separately unapproved: Taskwarrior TypeScript and Proxmox Python. Normal input 1,800s, Semgrep 10s, cleanup 15s, maximum four workers; outer 380 minutes plus 15s cleanup. See artifacts/phase22/integration/v79-unseen-metadata-correction/. All 440 requirements remain; 24 proposed historical/practical limitations are unaccepted. Existing 205 exposed observations / 95 pairs and unchanged 2,450 tests / 36 skips retain their actual bindings. Normal FAF completion remains unestablished; V68 remains unopened. Git 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged. Zero new paid calls.

Phase 22 is incomplete pending the requested evaluation, updated delivered review, explicit human technical acceptance and verified accepted closeout. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v77 unseen-source preparation: exact evaluation approval pending

Two previously unused repository cases are prepared at frozen cec0322: TypeScript Taskwarrior shell interpolation and Python Proxmox upload containment. The exact proposal is 6 source records × 2 passes = 12 observations, unapproved and unexecuted, using normal 1,800-second input / 10-second Semgrep / 15-second cleanup, four-worker maximum, 380-minute outer limit plus 15-second cleanup. Source novelty, complete upstream pairs, license qualifications and synthetic approval/stop/cleanup checks are retained in artifacts/phase22/integration/v77-unseen-preparation/.

All 435 requirements (422 retained + 13 new) remain explicit. V73/V75 retain 205 exposed observations and 95 equal entire ordered pairs; unchanged cec0322 engineering remains 2,450 tests / 36 skips. The 23 historical/practical limitations remain unaccepted, including ordinary FAF completion within 1,800 seconds and leaving V68 unopened. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark and pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged. Zero new paid calls.

Phase 22 remains incomplete pending the additional unseen check, a newly delivered complete review, explicit human technical acceptance and verified accepted closeout. No merge, ready-state, release, outreach or Phase 23.

Historical v76 technical review: source gates passed, human acceptance pending

At engineering-tested cec0322, the separately approved 24 four-repository observations and 181 prior-language observations are complete, with all 95 entire ordered pairs equal, verified cleanup and both budgets closed. No-bash, Lightning, Engram and FAF pass their narrow exposed conditions; TypeScript 94 and Python 87 preserve compatibility, including caller-specific DDG CGNAT support and two retained nominal-fixed Meta operator errata. Calculator reports add two source-assessed findings outside the original metadata condition. Fourteen qualified Git repository-copy findings retain physical/identity uncertainty. Raw findings, unresolved surfaces and original fresh failures remain visible.

Normal FAF completion within 1,800 seconds remains unestablished. Its six approved uncapped observations took 2,297.758–2,735.386 seconds; the ordinary 1,800-second policy remains unchanged. The 181 language observations used normal 1,800-second input / 10-second Semgrep limits, 15-second cleanup and the existing four-worker maximum. No speedup, isolated benchmark or broader runtime safety is claimed. The V68 performance proposal remains unapproved and unimplemented.

Unchanged cec0322 engineering retains 2,450 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs, combined coverage 90.11%, branch-only 85.97%, six zero-call production request replays and 19 approved runtime component bindings. This continuation adds static assessment and affected documentation/package checks, not a new hosted code pass. All 422 requirements (89 original + 333 added) retain their previous states and exact evidence. Historical failures and practical limits are proposed for explicit acceptance.

Phase 22 remains incomplete until explicit human technical acceptance of the review packet and subsequent verified accepted-closeout delivery. The packet is artifacts/phase22/integration/v76-technical-acceptance/; its summary, complete audit and acceptance proposal enumerate every proposed limitation. Git stays 312/1,040 incomplete, 728 deferred; the 396-request paid benchmark and pilots are deferred, Phase 21 is incomplete, and Phase 24/15 are unchanged. Historical paid spend stays $0.071799; zero new paid calls. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v72 correctness recovery: engineering passed, regression pending

Ordinary approved-contract recovery is verified at cec0322. Supported TypeScript constructor parameter properties retain actual argument/default and receiver identity; Python initial URL guard qualification survives only proved trailing-slash/path-suffix derivation. Wrong/escaped receivers, ambiguous field initialization, hostname fallbacks, formatting and authority changes remain conservative, including rejection of prototype-mutating __proto__ properties. The first candidate 42d6c7c failed that additional control; its local suite was interrupted after 1,408 passes/36 skips and CI 34845266890 cancelled. Initial five synthetic failures, subset-coverage configuration and helper-normalization failure also remain retained with their corrections; no partial suite becomes a pass.

Local and all 12 hosted suites pass 2,450 tests / 36 skips; all 29 normal CI jobs and docs pass in 34846514312 / 34846514328. Combined coverage is 90.11%, branch-only 85.97%. Exact checkout/package bindings, six unchanged zero-call production requests and 19 approved runtime component bindings pass. No speedup is established.

The new 24-observation corrected four-repository proposal is unapproved and unexecuted: 12 inputs twice, 12 entire ordered pairs, 18 non-FAF observations then six FAF. It proposes the previously tested experiment-only uncapped policy, with finite 15-second cleanup and unchanged normal 1,800-second deadline. All 10 complete synthetic policy comparisons and cancellation/approval boundaries pass. 181 earlier Python/TypeScript observations remain outside this proposal.

The completed V70 experiment at 4145d35 remains unchanged: 24/24 complete, 12/12 ordered pairs equal, FAF 2,212.22–2,341.48 seconds; no-bash/Engram narrow passes, FAF detection/support and Lightning negative-qualification failures. Those results do not establish current-source gates. All 407 requirements (89 original + 318 added), original fresh failures and six unaccepted historical closure proposals remain. V68 performance optimization stays unapproved and unimplemented. No new corpus/profile/comparator/target execution or paid call.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete with 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v70 uncapped experiment: complete run, two failed gates

The user-approved 24-observation uncapped four-repository experiment at 4145d35 completed, with all 12 entire ordered report pairs equal, verified cleanup and zero remaining budget. The 18 non-FAF observations took 6.28–10.72 seconds each. FAF took 2212.221735–2341.484236 seconds per input. 6 observations exceeded the ordinary 1,800-second policy, which remains unchanged; no speedup is established.

No-bash and Engram pass their narrow exposed conditions, retaining the exact lexical/physical and initial-home/reconstructed-use qualifiers. Lightning fails fixed/safe qualification; FAF misses the vulnerable read and leaves both negative paths unsupported. All 260 findings, 52,492 diagnostic occurrences, 282 surfaces, 4,963 source contexts and full ordered reference differences are source-assessed. The original fresh failures remain source-bound and unchanged.

The pending v68 literal-serialization optimization remains unapproved and unimplemented. No source tuning, profile, retry, comparator, target execution or paid call ran during this experiment. The earlier Python/TypeScript schedule's 181 observations are outside this approval; current compatibility is pending.

All 399 requirements (89 original + 310 added) and all historical failures remain, including the explicit v68 audit-status correction. Unchanged engineering retains 2,419 tests / 36 skips locally and in all 12 hosted suites, 29 normal jobs and docs passed; combined coverage 90.08%, branch-only 85.92%. Six zero-call production replays and approved runtime bindings remain. This is no new hosted code pass, broad accuracy result, accepted limitation or independent validation.

Phase 22 remains incomplete, pending the failed current-source gates, earlier-language compatibility, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete with 728 deferred; paid benchmark/pilots are deferred, Phase 21 is incomplete, and Phase 24/15 are unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v68 invalidation profile: source-only decision pending

The approved FAF profile at frozen 4145d35 timed out after 1800.013225 seconds, retaining 148,001 verified parent samples and no report. Cleanup passed after forced termination; the periodic snapshot does not confirm final snapshot completion or timer restoration. No worker snapshot exists; worker launch history and costs are unestablished. The one-use budget is closed. Registration discovery is 99.86% inclusive; literal serialization is 3.85% of parent leaf samples. These overlapping partial shares establish no speedup, removable fraction, detection or compatibility.

v68-invalidation-sampling/optimization-proposal.json prepares one unapproved, unimplemented source-only literal serialization reuse attempt: a bounded per-program cache for exact strings, with fresh Values and all analysis/state updates retained. Full identity, cold/warm/eviction, error/deadline and ordered report equivalence plus engineering are required. No corpus/profile/retry, resource/deadline revision, target execution or paid call is included.

An initial read-only launch preflight failed before any input/token because files had disappeared. Verified recovery restored 25,941 tracked files, six worktree links, 7,667 expanded evidence files and two protected user documents without overwriting existing bytes. The cause remains unknown. User-authorized Docker cleanup removed five unused public base images; project images, all containers and volumes remain. Logical image storage fell 2.89GB; delayed physical recovery is separately recorded. The same unused profile approval then ran once.

All 391 requirements (89 original + 302 added) remain, including seven native timeouts, six valid partial profiles, invalid stale-root preparation, both singleton failures, the original strict invalidation failure and six unaccepted historical closure proposals. Product retains tested 4145d35: 2,419 tests / 36 skips locally and all 12 hosted suites, 29 normal CI jobs and docs passed. Combined coverage is 90.08%, branch-only 85.92%; six zero-call production replays and approved runtime bindings remain. This continuation adds profile/recovery assessment and docs/package checks, not another hosted code pass.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete, with 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v67 invalidation regression: timed out, budget closed

The approved 205-observation sequence at frozen 4145d35 stopped on its first FAF vulnerable input after 1800.008716 seconds whole-input time. One incomplete, zero reports, 204 unstarted closed, zero remaining. Cleanup passed within its separate 15-second allowance. Findings, detection, fixed/control support and ordered repeats remain unknown. No retry, profile or paid call ran.

v67-invalidation-regression/diagnostic-proposal.json prepares one unapproved, unexecuted parent-and-worker sampled FAF input, maximum 1800 seconds plus 15 seconds cleanup. It reuses the existing sampler and worker layout with actual source identities verified before timers/target access. Synthetic identity, completion/interruption, timer and missing-approval controls pass. The older 1948bf9 parent profile cannot establish residual costs after the accumulator change. No optimization, resource/deadline revision or native speedup is included.

All 383 requirements (89 original + 294 added) remain, including seven native timeouts, five valid partial profiles, invalid stale-root preparation, both singleton failures, the original strict invalidation failure and six unaccepted historical closure proposals. Product retains tested 4145d35: 2,419 tests / 36 skips locally and all 12 hosted suites, 29 normal CI jobs and docs passed. Combined coverage is 90.08%, branch-only 85.92%; six zero-call production replays and approved runtime/image bindings remain compatible. This continuation adds outcome, preparation and docs/package checks, not another hosted code pass.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete, with 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v66 invalidation contract: engineering passed, regression approval pending

The explicitly approved private mutation-domain revision and one source-only If accumulator attempt are verified at 4145d35, source 41dd31a167c454bd9db3d720ce75ce6287312ce0e7799bbda1b2e59c61f77ea6. All seven shipped flow classes preserve monotone private invalidations and independent arm baselines. The candidate reuses the first completed arm; all guard, statement and conservative union work remains. The source-bound guard rejects removal/export/reflection mutations. Verification passes 256 ordinary, 766 complete production-flow and 252 production-boundary comparisons, 125 ordered discovery comparisons and six complete serial/parallel results. Only the two explicitly named injected scanner callbacks are outside the prospective domain; their exact deltas and v65 strict failure remain retained. No other failure is excluded; no native speedup or 1800-second completion is proved.

Local and all 12 hosted suites pass 2,419 tests / 36 skips; all 29 normal CI jobs and docs pass in 34808261686 / 34808261635. Combined coverage is 90.08%, branch-only 85.92%. Six complete production requests replay identically with zero model calls; approved runtime/image bindings remain. Verification-helper failures and their actual corrections remain preserved.

v66-invalidation-contract/evaluation-proposal.json prepares 205 exposed observations on 110 inputs / 95 ordered pairs, unapproved and unexecuted: 24 four-source, 94 TypeScript and 87 Python. Bounds remain 1800 seconds per input, 15 seconds cleanup and a 6275-minute worst-case outer cap, not an estimate. No retry/profile/comparator, new repository, target execution or paid call.

All 376 requirements (89 original + 287 added) retain every prior failed gate, six native timeouts, five separately bound partial profiles, invalid stale-root preparation, both singleton failures, the strict accumulator failure and six unaccepted historical closure proposals. Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23 is authorized.

Historical v65 invalidation attempt: strict-equivalence failure retained

The approved If invalidation-accumulator attempt passes 256 ordinary full-state comparisons, then fails the required synthetic captured-arm alias and shrinking-arm controls. Error/interruption states agree. Shipped source has no matching removal or arm-set export; real-target reachability remains unestablished. The strict proposal still required these controls. One failed attempt closed; exact tested 1948bf9 source restored. The candidate and the initial helper-deadline correction remain.

v65-if-invalidation-accumulator/optimization-proposal.json prepares an unapproved explicit mutation-domain revision and one new source-only attempt. Every shipped writer/reader/subclass must first prove monotone private sets with no escaping arm alias. Only the two named injected callbacks would become negative controls outside that prospective domain after explicit approval; their original failures stay failed. No current reclassification, implementation, corpus/profile/retry, paid call, resource change or timeout revision is authorized. Full engineering remains required if a later explicitly approved attempt passes its complete prerequisites.

All 365 requirements (89 original + 276 added) and every earlier failed gate remain. Restored 1948bf9 retains 2,418 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 90.08%, branch-only 85.92%. Six zero-call production replays and approved runtime bindings remain compatible. This adds failed-attempt/restoration and docs/package checks, not a new candidate engineering or hosted code pass.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v64 parent-and-worker profile: source-only decision pending

The approved single FAF profile at frozen 1948bf9 timed out after 1800.010375 seconds, retaining 148,764 partial samples from 1 verified process snapshot(s): parent. Cleanup passed; no report exists and the one-use budget is closed. Parent and worker denominators are separate. Missing worker snapshots do not prove workers never launched. Partial shares establish no native speedup, removable-cost fraction or detection.

v64-shared-discovery-sampling/optimization-proposal.json prepares one unapproved source-only attempt to avoid redundant If invalidation-accumulator construction. The original baseline and every per-arm copy, guard, traversal and state update remain. Complete branch-isolation, alias/state and report equivalence plus full engineering are required. No implementation, corpus/profile/retry, paid call, resource change or timeout revision is included. The 1800-second policy remains.

All 358 requirements (89 original + 269 added) and every earlier failed gate remain. Product retains tested 1948bf9: 2,418 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed. Combined coverage is 90.08%, branch-only 85.92%; six zero-call replays and approved runtime bindings remain compatible. This continuation adds profile assessment and docs/package checks.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v63 shared-discovery regression: timed out, budget closed

The approved 205-observation sequence at frozen 1948bf9 stopped on its first FAF vulnerable input after 1800.010893 seconds whole-input time. One incomplete, zero reports, 204 unstarted closed, zero remaining. Cleanup passed in its separate 15-second allowance. Detection, findings, fixed/control support and ordered repeats remain unknown. No retry, profile, target execution or paid call ran.

v63-shared-discovery-regression/diagnostic-proposal.json prepares one unapproved, unexecuted parent-and-worker sampled FAF input, maximum 1800 seconds plus 15 seconds cleanup. Completed discovery now runs in the parent before worker dispatch; old worker-only samples cannot establish current costs. Reuse the same CPU-timer sampler in the parent and existing workers, with actual source identities verified before timers/target access. Six-vector, stale-root, parent completion/interruption and missing-approval controls pass. Sampling overhead and incomplete intervals remain explicit; no optimization, resource/deadline change or speedup claim is included.

All 352 requirements (89 original + 263 added) remain, including six native timeouts, four valid partial profiles, invalid stale-root preparation, both singleton failures and six unaccepted historical closure proposals. Product retains tested 1948bf9: 2,418 tests/36 skips locally and all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 90.08%, branch-only 85.92%. Six zero-call production replays and approved runtime/image bindings remain compatible; this adds outcome/preparation and final docs/package checks, not another hosted code pass.

Phase 22 remains incomplete, pending actual current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23 is authorized.

Historical v62 shared discovery: engineering passed, regression approval pending

The approved single source-only discovery-reuse attempt is engineering-verified at 1948bf9, source 8f88940210e0f382f8c1cfa1b8af3bf7464ecb891122ae23539de1e4806fc408. The original traversal is preserved; completed TypeScript registration discovery is shared through the existing four-worker IPC and parent coverage. Ordered warnings, source-node aliases, option effects and all rule-specific analyses remain intact. Synthetic checks include 125 complete baseline comparisons, complete worker reports, empty/failed/deadline cases and one producer with every detector still invoked. No native speedup or 1800-second completion has been established.

Local and all 12 hosted suites pass 2,418 tests / 36 skips; all 29 normal CI jobs and docs pass in 34793663094 / 34793663105. Combined statement/branch coverage is 90.08%, branch-only 85.92%. Six complete production requests replay identically with zero paid calls; approved runtime/image bindings remain compatible. Initial fixture/import/format check errors retain their corrections.

v62-shared-tool-discovery/evaluation-proposal.json prepares 205 exposed observations, 110 inputs and 95 entire ordered pairs, unapproved and unexecuted: 24 four-source, 94 TypeScript and 87 Python. The shared 1800-second input limit, 15-second cleanup, 120-second informational target and 6275-minute outer cap remain unchanged. The outer cap is a worst-case bound, not a duration estimate. No retry/profile/comparator, new repository, target execution or paid call is included.

All 345 requirements (89 original + 256 added) retain every earlier failed gate, five native timeouts, four valid partial profiles, invalid stale-root preparation, both singleton failures and six unaccepted historical closure proposals. No old budget is reopened. Phase 22 remains incomplete, pending current-source gates, separate explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete, 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23.

Historical v61 thirty-minute profile: source-only decision pending

The approved FAF profile at frozen 7bf4c6e timed out after 1800.090669 seconds, retaining four verified worker identities and 432,756 partial samples. Cleanup passed; no report exists and the one-use budget is closed. Registration discovery appears in 99.93–99.93% of each worker's retained samples. These overlapping partial shares do not prove native speedup, removable-cost fraction, detection or compatibility.

v61-faf-long-timeout-sampling/optimization-proposal.json prepares one unapproved source-only attempt to reuse completed TypeScript tool discovery across the existing workers and coverage. Preserve ordered warnings and source-node identity; all rule-specific analysis still executes. Full synthetic/engineering verification is required. No implementation, corpus/profile/retry/comparator, target execution, paid call, resource change or timeout revision is included in current approval. The shared 1800-second policy remains in place.

All 335 requirements (89 original + 246 added) and every earlier failed gate remain. Product/tests retain verified 7bf4c6e: 2,403 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed. Combined coverage is 89.98%, branch-only 85.86%; six zero-call replays and approved runtime bindings remain compatible. This continuation adds profile assessment and docs/package checks.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v60 thirty-minute regression: timed out, budget closed

The approved 205-observation sequence at frozen 7bf4c6e stopped on the first FAF vulnerable input after 1800.021672 seconds. One incomplete, zero reports, 204 unstarted closed and zero remaining; cleanup passed. Findings, detection, fixed/control discrimination and ordered repeats remain unknown. The approved 1800-second shared policy remains in place; extending the deadline alone did not establish completion. No retry, profile or paid call occurred.

v60-long-timeout-regression/diagnostic-proposal.json prepares one sampled FAF input, unapproved and unexecuted, with a 1800-second maximum and 15-second cleanup allowance. Existing sampler/worker layout, synthetic identity/timer and missing-approval checks pass. Older a36f696 samples do not establish current costs. No optimization, uninstrumented run, comparator or target execution is included.

All 329 requirements (89 original + 240 added) remain, including five native timeouts, three valid partial profiles, invalid stale-root preparation, both singleton failures and six unaccepted historical closure proposals. Product and tests remain verified 7bf4c6e: 2,403 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed. Combined coverage is 89.98%, branch-only 85.86%; six zero-call replays and approved runtime bindings remain. This continuation adds outcome, preparation and docs/package checks.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v59 timeout policy: engineering passed, evaluation pending

The user confirmed 30 minutes per input. The shared static deadline is now 1,800 seconds at 7bf4c6e, source 40c194dcd47a152f78c9b9dc57b40e5e77026f6052035841c0af63b83f234af6; 120 seconds remains informational. Source proof establishes one product AST literal change; detector logic and cleanup are unchanged from dc73715. Local and all 12 hosted suites pass 2,403 tests / 36 skips; all 29 normal jobs and docs pass in 34784085204 / 34784085193. Six production requests replay with zero paid calls. Actual engineering and runtime bindings are retained.

v59-timeout-policy/evaluation-proposal.json is unapproved and unexecuted: 205 exposed observations, 110 input records, 95 ordered pairs; 30-minute input ceiling, 15-second cleanup and 6,275-minute outer cap. This is a worst-case cap, not a duration estimate. All original conditions, support requirements and 11 volatile exclusions remain. No retry, profile, comparator, new repository, target execution or paid call. The pending v58 diagnostic is preserved unexecuted.

All four earlier native timeouts, partial/invalid profiles, singleton failures and original fresh failures remain source-bound and unaccepted. No speedup, current-source compatibility or new unseen-source discrimination is established. The audit retains 323 rows (89 original + 234 added), including all 314 prior rows and six unaccepted historical closure proposals. Phase 22 is incomplete: actual regression, source assessment, explicit human acceptance and closeout remain. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23.

Historical v58 credential regression timeout: budget closed

The approved 205-observation sequence at frozen dc73715 stopped on the first FAF vulnerable input at 300.005621 seconds whole-input time. One incomplete, zero reports, 204 unstarted closed, zero remaining; cleanup passed. Detection, findings, fixed/control discrimination and ordered repeats are unknown. Current-source four-repository and prior-language gates remain unresolved. No retry, profile, comparator, target execution or paid call occurred.

v58-credential-regression/diagnostic-proposal.json prepares one sampled FAF input, unapproved and unexecuted, with a 300-second maximum and 15-second cleanup allowance. The existing sampler and worker layout remain unchanged; actual worker/flow/source identities are verified before timer or target access. Synthetic identity/timer checks and the missing-approval boundary pass. Earlier a36f696 samples do not establish residual costs at the corrected source. No optimization, resource/deadline change or further measurement is authorized.

All 314 requirements (89 original + 225 added) remain. All four native timeouts, three partial profiles, invalid stale-root preparation, both singleton failures and six unaccepted historical closure proposals retain their actual source bindings. Product and tests remain engineering-tested dc73715: 2,399 tests / 36 skips locally and in all 12 hosted suites, all 29 normal CI jobs and docs passed. Combined coverage is 89.98%, branch-only 85.86%; six zero-call production replays and approved runtime/image bindings remain compatible.

Phase 22 remains incomplete, pending current-source gates, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v57 joint correction: engineering passed, regression pending

The approved equal-marker credential correction and canonical unknown bypass are verified at dc73715, source 4f3e5b2e9c89f61d179ac82db94ced06e83033f9cf1640644cefb53326e96eb9. Across 4,050 correction cases, 552 marker and 552 derived cache-input deltas retain the explicitly revised join contract; guard results agree. The bypass then passes 2,430 complete Python/TypeScript state comparisons and two saturated-cache evictions against a preserved correction-only reference. Seven existing synthetic HTTP patterns preserve entire ordered rule output: four detections, three negatives. Both original singleton failures remain reproduced, closed and unaccepted.

Local and all 12 hosted suites pass 2,399 tests / 36 skips; all 29 normal CI jobs and docs pass in 34779741236 / 34779741226. Combined local coverage is 89.98%, branch-only 85.86%. Packages, strict quality checks, six identical zero-call production requests and approved runtime bindings pass. Initial synthetic fixture, import-root and test-format check failures retain their individual corrections.

v57-credential-merge/evaluation-proposal.json is unapproved/unexecuted: 205 exposed observations on 110 inputs / 95 ordered pairs, comprising 24 four-source, 94 TypeScript and 87 Python observations. 120-second target, 300-second whole/native maximum, 15-second cleanup, 1,150-minute outer sequence; zero retries, profiles, comparators, target execution or paid calls. No speedup or 300-second completion is established. All old timeouts, partial/invalid profiles and fresh failures remain source-bound; no partial subsets become new whole Linux batches.

The audit retains 308 requirements (89 original + 219 added), including six unaccepted historical closure proposals and both failed singleton rows. Phase 22 remains incomplete, awaiting actual regression, explicit human technical acceptance and accepted closeout. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v56 canonical bypass: eviction failure retained

The approved canonical UNKNOWN_VALUE bypass passes the two retained ordinary identity cases, then fails synthetic environment equivalence after LRU eviction. Skipping an empty entry changes whether a tainted value remains interned; the identity-only credential-marker join then returns different environments. Full flow fields agree and inputs are unchanged. Real-target reachability/impact of the adversarial contained-false marker remains unestablished. One attempt consumed, zero remaining; exact tested a36f696 source restored.

v56-canonical-unknown/optimization-proposal.json prepares an unapproved prospective contract revision: equal immutable credential markers would join consistently by identity or complete equality, followed by the canonical bypass. The specified baseline marker delta must remain visible; bypass equivalence must then hold against a correction-only reference with no exclusions. Neither edit is implemented. No speedup or 300-second completion is promised. No corpus, profile, retry, target execution or paid call is included.

All prior native/profile/fresh failures and both singleton failures remain source-bound and closed. The audit retains 297 rows (89 original + 208 added), including six unaccepted historical closure proposals. Restored a36f696 retains 2,386 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 89.98%, branch-only 85.85%. This is no new hosted code pass. Phase 22 remains incomplete. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23.

Historical v55 singleton attempt: equivalence failure retained

The approved broad singleton cache bypass failed its synthetic environment equivalence prerequisite and was reverted. A warm cache interns equal Values; direct return changes identity-sensitive credential-marker merging for a tainted contained-false internal state. Real-target reachability of that state is not established. Initial whole-flow comparison flags were a helper-object comparison defect; structural reassessment preserves equal full flow state and confirms the independent environment delta. All evidence remains visible. One failed attempt consumed, zero remaining; product restored exactly to tested a36f696.

v55-singleton-combine/optimization-proposal.json prepares one unapproved, unimplemented attempt restricted to the canonical UNKNOWN_VALUE singleton and empty requested key. Every other input must retain cache dispatch. Complete state and interning checks remain required; eligibility frequency and speedup are unknown. No corpus/profile/retry, target execution or paid call is authorized.

All three native timeouts, partial profiles, invalid stale-root attempt and original fresh failures remain source-bound. The audit retains 290 rows (89 original + 201 added), including six unaccepted historical closure proposals and the new unresolved equivalence failure. Restored a36f696 retains 2,386 tests / 36 skips in local and all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 89.98%, branch-only 85.85%. This is no new hosted code pass. Phase 22 remains incomplete. Git remains 312/1,040 incomplete; paid benchmark and pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v54 sampled timeout: source-only decision pending

The approved single profile at frozen a36f696 retains four verified worker identities and 78,769 partial samples. Whole input 300.007176 seconds; cleanup passed, no report exists and the one-use budget is closed. Registration traversal dominates; merge is 33.09–33.73% inclusive and shared combine/cache call is 7.40–7.64% leaf sample share. These overlapping partial shares establish no native speedup, removable-cost fraction or 300-second completion.

v54-faf-fastpath-sampling/optimization-proposal.json proposes one unapproved source-only singleton fast path before the existing value-combination cache. Only an unchanged sole Value with no key override or required safety stripping could bypass the tuple/cache call. All other paths, cache and complete flow state must remain compatible, including cold/warm and identity-sensitive controls. No implementation, corpus/profile/retry, new cache, resource/deadline change or paid call is authorized. Eligible-case prevalence remains unmeasured.

All three native timeouts/204 closed remainders, prior partial profiles, invalid stale-worker preparation and original fresh failures remain unchanged. The audit retains 283 requirements (89 original + 194 added) and six unaccepted historical closure proposals. Product retains tested a36f696: 2,386 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 89.98%, branch-only 85.85%, six unchanged zero-call production requests and runtime bindings. Phase 22 remains incomplete. Git stays 312/1,040 incomplete with 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v53 fast-path regression timeout: budget closed

The approved 205-observation sequence at frozen a36f696 stopped on its first FAF vulnerable input at 300.000481 seconds whole-input time. One incomplete, zero reports, 204 unstarted closed, zero remaining; cleanup passed. Findings, guards, negative discrimination and ordered repeats are unknown. Corrected four-source and prior-language compatibility gates remain unestablished. No retry, profile, target execution or paid call occurred. All earlier failures and original fresh outcomes remain preserved with their actual scanner identities.

The next single 300-second sampled FAF input is prepared, unapproved and unexecuted in v53-fastpath-regression/diagnostic-proposal.json. It retains the existing CPU-timer sampler, source/configuration and worker layout, with verified actual worker/flow/scanner identities before timer or target snapshot access. The stale-root synthetic control and missing-approval boundary pass. Earlier 6e4fd67 samples cannot establish remaining costs after the current reorder. No further optimization, retry, resource/deadline change or paid call is authorized.

All 277 requirements (89 original + 188 added) remain, including six unaccepted historical closure proposals and the unresolved invalid stale-worker preparation. Product/tests/workflows remain a36f696: 2,386 tests / 36 skips locally and in all 12 hosted suites; 29 normal CI jobs and docs passed, combined coverage 89.98% and branch-only 85.85%. Six zero-call production requests and runtime bindings persist. Phase 22 remains incomplete. Git stays 312/1,040 incomplete with 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v52 equal-value fast path: regression approval pending

The one approved source-only merge reorder is engineering-verified at a36f696. It checks eligible equal values actually present in every branch before preparing record fallbacks. 10,944 synthetic comparisons preserve environment, complete flow state and inputs; eight intended cases skip the registry lookup and all 13 needed defaults remain. No native speedup or 300-second completion is established. Full local and all 12 hosted suites pass 2,386 tests / 36 skips; local combined statement/branch coverage 89.98%, branch-only 85.85%. All 29 normal CI jobs and docs pass in 34767417083 / 34767417081, with exact checkout/package bindings. Six unchanged production requests checked-replay with zero model calls. No new corpus observation, profile or Git campaign ran.

The 205-observation exposed regression is prepared, unapproved and unexecuted: 24 four-source + 94 TypeScript + 87 Python, 110 inputs and 95 whole ordered pairs. Bounds: 120-second target, 300-second native/whole maximum, 15-second cleanup, one 1,150-minute serial local sequence. No retries, profiles, comparators, new repository, target execution or paid calls. See v52-merge-fastpath/evaluation-proposal.json and launcher-binding.json. Earlier shared recovery still lacks completed corpus validation, so both language schedules remain necessary; they are no new whole Linux batch. Every original label, qualifier and source-support condition remains.

Both earlier native timeouts/204 closed remainders, sampled timeouts, invalid stale worker preparation and all original fresh failures remain preserved. The corrected v51 partial profile does not erase the invalid attempt or establish a native pass. All 271 requirements (89 original + 182 added) remain; six historical closure proposals, corrected gates and human technical acceptance are unresolved. Phase 22 remains incomplete. Git stays 312/1,040 incomplete with 728 deferred; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v51 bound profile: source-only decision pending

The approved corrected profile at frozen 6e4fd67 retains four verified worker identities and 79,307 partial samples. Its whole input timed out at 300 seconds; cleanup passed, no report exists, and the one-use budget is closed. Shared TypeScript branch merge is 43.02–44.46% inclusive sample share; its missing-branch predicate is 8.40–9.08% leaf share. These are not speedup or removable-cost claims. The review packet proposes one unapproved source-only optimization: recognize eligible all-present equal branch values before fallback preparation. No implementation, corpus/profile/retry, resource change or paid call is authorized. The invalid old-root profile and V49 preparation failure remain preserved; this passes current diagnostic attribution only. Original native/fresh failures remain. Product retains tested 6e4fd67: 2,384 tests / 36 skips locally and in all 12 hosted suites, 29 normal jobs and docs passed; combined coverage 89.98%, branch-only 85.85%. All 265 requirements remain. Phase 22 is incomplete; explicit human acceptance is separate. Git stays 312/1,040 incomplete, paid benchmark and pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23.

Historical v50 profile binding failure: stopped and closed

The approved single profile was deliberately stopped when the reused sampler's worker import root was found to be 17b4784 instead of approved 6e4fd67. One invalid interrupted attempt, no report or sample snapshot, zero remaining. Cleanup inventory is empty. Parent identity does not prove worker identity; V49-DIAGNOSTIC-PREPARATION is corrected to unresolved with its prior row preserved. The review packet retains this agent preparation error and the diagnostic-only correction: actual worker/flow imports and full scanner identity checked before sampling or target snapshot access, with a stale-root rejection control. A new single 300-second profile is unapproved and unexecuted; no retry, optimization or paid call is authorized. Prior native timeouts and all four first-frozen failures remain unchanged. Product retains tested 6e4fd67: 2,384 tests / 36 skips locally and in all 12 hosted suites; 29 normal jobs and docs passed, combined coverage 89.98%, branch-only 85.85%. All 259 requirements remain. Phase 22 is incomplete; human acceptance is separate. Git stays 312/1,040 incomplete; paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23.

Historical v49 allocation regression timeout: budget closed

The approved 205-observation sequence at frozen 6e4fd67 stopped on its first FAF vulnerable input at the 300-second whole-input maximum: one incomplete, zero completed reports, 204 unstarted closed, zero remaining. Cleanup passed. No finding, guard, negative-path or ordered-repeat result is available; corrected four-repository and prior-language compatibility gates remain unestablished. The review packet retains the failure and an unapproved single 300-second CPU-sampling diagnostic on the same FAF input. No new retry, profile, target execution or paid call occurred in this sequence. The v47 profile remains bound to the earlier scanner; another optimization is not authorized. All original fresh failures and historical source-bound passes remain unchanged. Engineering retains 6e4fd67: 2,384 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 89.98%, branch-only 85.85%. The audit retains all 253 requirements. Phase 22 remains incomplete; no failure/limitation or human technical acceptance is inferred. Git stays 312/1,040 incomplete; paid benchmark and pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23.

Historical v48 allocation candidate: regression approval pending

The approved single source-only merge optimization is engineering-verified at 6e4fd67. It avoids constructing unused record fallbacks; 10,944 synthetic comparisons preserve environment, complete flow state and inputs. Allocation checks preserve needed fallbacks. Full local and all 12 hosted suites pass 2,384 tests / 36 skips; local combined statement/branch coverage is 89.98%, branch-only 85.85%. All 29 normal CI jobs and docs pass in 34743452798 / 34743452818, with exact candidate checkout/package bindings. Six production requests checked-replay unchanged with zero model calls; Git runtime/image remains compatible. No new corpus observation or profile ran.

The new 205-observation exposed regression is prepared, unapproved and unexecuted: 24 four-repository, 94 TypeScript and 87 Python, on 110 inputs and 95 ordered repeat pairs. Bounds are 120-second target, 300-second native/whole maximum, 15-second cleanup and one 1,150-minute serial local sequence; no retry, profile, comparator, new repository, target execution or paid call. Exact scope is in v48-merge-allocation/evaluation-proposal.json and launcher-binding.json. The earlier shared source recovery still lacks completed corpus validation, so both prior-language schedules remain necessary. Synthetic allocation reduction establishes no native speedup or 300-second completion. The old native timeout and 204 unstarted closed, sampled timeout and all original fresh failures remain unchanged. No closed budget is reused and no failed gate is waived.

The audit retains all 247 requirements, including 89 original and 158 added rows. Corrected corpus gates, six historical closure decisions and explicit human technical acceptance remain unresolved. Phase 22 remains incomplete. Git campaigns stay 312/1,040 incomplete with 728 deferred; paid benchmark/pilots stay deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23 is authorized.

Historical v47 sampled timeout: source-only proposal pending

The separately approved single FAF worker profile at frozen 17b4784 timed out at 300 seconds with verified cleanup: one incomplete sampled input, four partial snapshots / 86,659 samples, no report, zero budget remaining. The review packet attributes 58.36–59.06% of worker samples inclusively to TypeScript branch merging and 25.78–26.41% as leaves in its fallback Value constructor. These overlapping sample shares are not promised savings; unused allocations remain uncounted. One narrow source-only fallback-allocation optimization is proposed, unapproved and unstarted, with zero new corpus/profile/paid budget. The prior regression's one incomplete attempt and 204 closed unstarted observations remain unchanged. Corrected detection/compatibility gates remain unresolved. Engineering retains tested 17b4784: 2,380 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 89.98%, branch-only 85.85%. All 239 audit rows and original fresh failures remain. Phase 22 is incomplete; no limitation or human technical acceptance is inferred. Git remains 312/1,040 incomplete, paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No optimization, retry, paid call, target execution, merge, ready-state, release, outreach or Phase 23 occurred or is newly authorized.

Historical v46 regression timeout: budget closed

The approved 205-observation sequence at frozen 17b4784 stopped on its first FAF vulnerable input at the 300-second whole-input maximum: one incomplete, zero completed reports, 204 unstarted closed, zero remaining. Cleanup passed. No finding, guard, negative-path or ordered-repeat result is available; corrected four-repository and prior-language compatibility gates remain unestablished. The review packet retains the failure and an unapproved single 300-second CPU-sampling diagnostic on the same FAF input. No retry, profile, target execution or paid call has occurred. All original fresh failures and historical source-bound passes remain unchanged. Engineering retains 17b4784: 2,380 tests / 36 skips locally and in all 12 hosted suites, 29 normal CI jobs and docs passed; combined coverage 89.98%, branch-only 85.85%. The audit retains all 233 requirements. Phase 22 remains incomplete; no failure/limitation or human technical acceptance is inferred. Git stays 312/1,040 incomplete; paid benchmark and pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state change, release, outreach or Phase 23.

Historical v45 source recovery: verified, regression approval pending

Source recovery at 17b4784 passes 2,380 tests / 36 skips locally and in all 12 hosted suites; all 29 normal CI jobs and docs pass. Local combined branch-enabled coverage is 89.98% (branch-only 85.85%). Packaging, isolation and six exact zero-call production replays are verified. The review packet binds the corrected scanner and an unapproved 205-observation exposed/compatibility proposal: 24 four-repository + 94 prior TypeScript + 87 prior Python observations, 110 inputs, 95 ordered pairs; 120-second target, 300-second maximum, one 1,150-minute sequence. No corrected-scanner corpus observation or paid call has occurred. Original 24 first-frozen observations and all four failed fresh gates at 2e0efb2 remain unchanged. Later passes would be exposed regression. Accurate lexical/physical and resolved-copy qualifiers retain their source prerequisites and unresolved safety. The audit retains all 227 requirements; no historical failure or limitation is accepted. Phase 22 remains incomplete pending separate evaluation approval, source assessment, explicit technical acceptance and verified closeout. Git stays 312/1,040 incomplete, paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23.

Historical v44 four-repository result: failed fresh gates, recovery proposed

The approved first-frozen batch at 2e0efb2 completes 24/24 observations; all 12 entire ordered report pairs agree, all within 120 seconds (maximum 51.378262 seconds; sequence 455.321356 seconds). All four repository gates fail: FAF, Lightning's Python member and Engram miss their named vulnerable sinks; no-bash detects the vulnerable overwrite but falsely alerts on both fixed/safe inputs per pass. Quiet negatives lack established named-path support. The completed review packet source-assesses all 236 findings, 46,486 diagnostics and 270 surfaces and proposes focused source-only recovery. No correction or limitation waiver is inferred. All 24 observations are consumed, zero budget remains, and no extra paid/target/comparator/retry/profile call occurred. All prior source-bound results and failures remain preserved; product/test/workflow bytes still equal tested 2e0efb2. Phase 22 remains incomplete: actual failed-gate disposition/recovery, separate explicit technical acceptance and closeout remain. Git 312/1,040 stays incomplete, paid benchmark/pilots deferred, Phase 21 incomplete, Phase 24/15 unchanged. No merge, ready-state, release, outreach or Phase 23.

Historical v43 four-repository preparation: exact evaluation approval pending

Two new TypeScript repositories (FAF and no-bash) and two Python repositories (Lightning's Python member and Engram) are source-prepared at frozen 2e0efb2. The reviewable preparation packet proposes 24 native observations; zero have run and no evaluation approval has been received. Actual fixed-path support and first-frozen detection/discrimination remain unmeasured. All prior results, failures, closed budgets and proposed historical limitations remain intact. The v42 acceptance-readiness statement below is historical and superseded by this new requirement. Phase 22 remains incomplete pending exact evaluation approval, execution/source assessment, explicit human technical acceptance and verified closeout. No new paid calls; Git 312/1,040 remains incomplete, paid benchmark/pilots deferred, Phase 21 incomplete and Phase 24/15 gates unchanged. No merge, ready-state, release, outreach or Phase 23 is authorized.

Historical v42 regression result and pending technical acceptance

The approved 94-observation exposed TypeScript regression passes at frozen scanner 2e0efb2, source SHA-256 0eac8832012e213744d752c6c33a0ba6a2e378f6230e273030f5043f00cf6ebb. All 47 input records completed twice, with all 47 entire ordered report pairs equal after only the established 11 volatile exclusions. There were 94 observations within the 120-second target and 0 using the extended allowance; the maximum whole input was 106.857020 seconds, within the uniform 300-second maximum. The serial sequence took 3936.245 seconds. All 94 observations are consumed and the budget is closed, with zero remaining. No comparator, retry, profile, new repository, target execution or paid call occurred.

Memory-keeper passes both original three-input batches: one vulnerable import read hit and zero matching alerts on the fixed and safe inputs in each batch. The source assessment establishes the canonical operator root, component-bounded guard, checked helper return and supported actual read. Exactly four matching fixed/control false-alert occurrences and their derived counters disappear. All other ordered findings, warnings, unresolved flows, coverage and surfaces equal their bound references. The report has no positive per-sink guard trace; recognition is established by the code/source path, measured delta, evaluated rule and synthetic controls. Its unnamed MCP dispatch remains unresolved. Broader export and Git-message candidates and the upstream fixture-secret false positive remain visible.

All affected prior TypeScript conditions pass: SearXNG, fetch-mcp, open-webSearch and Lighthouse each retain two vulnerable hits and zero matching negative alerts per five-input batch; the precise initial-destination qualifiers remain intact. The ten TypeScript development records pass twice (four vulnerable hits and six valid negatives per batch), and the 14 historical TypeScript records pass twice (six vulnerable hits and eight valid negatives per batch). These language subsets are never pooled into a new whole historical/development execution. The whole 45+45 Linux timing/condition passes and explicitly reused whole 25 development batch retain their actual 1f3f72f evidence and Meta operator erratum. All 87 Python regression observations at 8c62567 remain source-compatible. The frozen DDG manifest's TypeScript label error remains disclosed: its actual hash-bound execution configuration selected Python.

The original fresh memory-keeper result remains unchanged: at 8c62567, one vulnerable hit and two matching fixed/control false alerts per batch, six complete observations and three equal report pairs. The repository was absent from eight prior manifests and 100 prior effective source trees. This demonstrates one narrow vulnerable detection on a project-unused repository before tuning; its discrimination correction is now exposed regression. It does not establish clean unseen vulnerable/fixed discrimination at the final corrected scanner. DDG's original fresh detections and initially unsupported fixed send, Lighthouse's original misses, and all earlier corrections/failures remain source-bound. The original held-out baseline stays 10 completed, 10 unsupported and five incomplete, with zero hits among four completed vulnerable inputs out of ten vulnerable inputs total. Same-agent curation/review is not independent human validation, training-data novelty, broad accuracy or runtime safety proof.

Product, tests, workflows, schemas and lock remain identical to engineering-tested 2e0efb2: local and all 12 hosted suites passed 2,317 tests / 36 skips, local branch coverage 89.92%, all 29 normal CI jobs passed in 34712751779, and docs passed in 34712751789. Those are retained source-bound passes; this continuation adds report validation, source assessments and final docs/package checks, not a new hosted code pass. Six zero-call production replays and the approved Git image/runtime bindings remain compatible. Git campaigns remain incomplete at 312/1,040, as requested. Paid benchmark and pilots remain deferred; Phase 21 is incomplete and Phase 24/15 gates are unchanged.

The audit retains all 89 original requirements: 84 passed, two user-deferred, two proposed documented limitations and one unresolved human acceptance. All 115 added requirements remain: 109 passed and six historical closure proposals awaiting decision. R66/R88 and V39-EVALUATION explicitly propose accepting the preserved fresh discrimination failure plus the later verified exposed correction. Five older failed optimization/preparation/execution attempts also retain their individual proposed closure decisions. None is relabeled as a historical pass or silently waived. The exact proposed acceptance scope and consequences are in v42-path-guard-regression/acceptance-proposal.json. Phase 22 remains incomplete until explicit human technical acceptance and subsequent closeout delivery. No merge, ready-state change, release, outreach or Phase 23 is authorized.

PyPI CI Documentation

Build-time security scanning for MCP servers.

PortunusMCP Sentinel scans local MCP server source before deployment. It combines deterministic Python and TypeScript analysis, GPT-5.6 semantic review, optional Docker-isolated runtime probes, OWASP Agentic Top 10 mappings, and validated SARIF output for GitHub code scanning.

Install

Sentinel supports Python 3.10–3.13 on Linux, macOS, and Windows. Install the current package with pipx:

pipx install portunusmcp-sentinel

Or use uv:

uv tool install portunusmcp-sentinel

Rules-only commands below require 1.3.0 or newer. Upgrade an existing install with pipx upgrade portunusmcp-sentinel or uv tool upgrade portunusmcp-sentinel.

Reports expose observed handlers and recognition gaps, actual rule visits, per-session runtime catalogs and sent attacks, and separate static/dynamic review activity. Default findings include bounded evidence and repair guidance. Static surface totals remain unknown; zero findings are not proof of safety. See the coverage and schema compatibility guide. Phase 22 adds bounded imported handlers/schemas and containment flows; computed registrations and unresolved source forms remain coverage gaps. Permission sidecars express intended grants; they do not enforce runtime boundaries. The Phase 22 integration source schedules bounded rounds across discovered tools and supported fields (24 started attempts or 120 seconds by default). Native 1.7.0 and campaign verification remain in progress; published releases and historical evidence retain their recorded versions.

Quickstart

From a local Python or TypeScript MCP server repository:

sentinel scan . --rules-only

Rules-only needs no model credentials, review cache, network, Docker, target configuration, or target execution. It ignores inactive LLM settings even when credentials and endpoint overrides are present. Installation and dependency auditing need network access separately.

The Phase 22 integration source allows deterministic static analysis up to 1,800 seconds (30 minutes), with a 120-second informational target. Fast scans return immediately; expiry remains an incomplete scan. Model review and dynamic budgets are separate. See the timing policy for measurement limits and the retained failures; this change is not yet a published release.

Optionally run sentinel init afterward to generate a deny-by-default sentinel.permissions.yaml; review scopes before granting them. It never imports or executes source and needs no main guard or launch inference. Existing files require --force for replacement; symlinks are rejected.

For Python runtime scaffolding, run sentinel init --dynamic, then sentinel scan . --no-rules-only. Adding missing runtime configuration preserves and validates an existing permissions file. Dynamic scans require Docker, model credentials, source-context transmission, and model cost; dependency installation also needs network access. TypeScript does not support --dynamic. If generated arguments cannot complete a legitimate tool call, add known valid probe_baselines to sentinel.target.yaml; an unsuccessful baseline leaves analysis incomplete.

Exit 0 and exit 1 both mean the scan completed: 0 means no finding reached the configured threshold, while 1 means at least one did. Exit 2 is a target or configuration error; exit 3 means analysis was incomplete.

Analysis tiers

Tier Command Requirements Result
Rules-only sentinel scan . --rules-only None beyond Sentinel Deterministic findings remain needs_review and fail-on eligible
Static + GPT review sentinel scan . --static-only OPENAI_API_KEY GPT reviews every selected deterministic candidate
Full dynamic proof sentinel scan . OPENAI_API_KEY, Docker, and a Python target GPT review plus four isolated runtime probes

--allow-degraded permits unavailable review; it still calls the model when a key is available. Use --rules-only to disable review explicitly. Completion describes the selected analysis tier and does not prove a server is secure.

TypeScript support is static-only and covers .ts, .mts, and .cts sources using the official MCP SDK v1 and server v2 shapes. JavaScript, TSX, declaration files and Node execution are outside the supported boundary. Declared uv, npm and pnpm workspaces support aggregate static scans with root Sentinel settings. Bounded local imports, package exports and TypeScript source aliases feed containment and handler inventory. Other rules retain their documented flow limits. Dynamic targets are individual local Python 3.10–3.12 MCP packages.

Version 1.3.0 includes Phase 16 static-correctness changes: same-file named-helper execution flows and value-specific validation, authentication, integrity, and configured-sanitizer checks. Unsupported flows remain unresolved; see the rule boundaries and verification record.

Phase 17 source changes add validated dynamic baselines, explicit probe outcomes, and proof-preserving review in native JSON 1.6.0. The current replay bundle uses one approved runtime-review refresh and four unchanged static captures. See the Phase 17 verification record for gates and acceptance status.

This integration source emits native JSON 1.7.0 with ordered runtime attempts and workspace coverage. Final Phase 22 verification and acceptance remain open; historical reports and release evidence retain their recorded schema versions.

Rules

Every finding uses a stable rule ID and maps to the OWASP Agentic Top 10.

Rule Detection OWASP Impact
SENT-001 Overly broad tool permission scope ASI03:2026 High
SENT-002 Tool input reaches unsafe execution ASI05:2026 Critical
SENT-003 Missing tool input validation ASI02:2026 Medium
SENT-004 Unsanitized tool content enters a prompt ASI01:2026 High
SENT-005 Hardcoded credential ASI03:2026 Critical
SENT-006 Missing or ineffective route authentication ASI03:2026 High
SENT-007 Unverified tool manifest ASI04:2026 Medium
SENT-008 Out-of-scope tool execution ASI02:2026 Critical
SENT-009 Size-limit breach or observed OOM/crash ASI05:2026 Medium
SENT-010 Injection payload executed ASI05:2026 Critical
SENT-011 Malformed schema input processed ASI02:2026 Low
SENT-012 Path containment failure ASI02:2026 High
SENT-013 Tool-description poisoning ASI01:2026 High
SENT-014 Command option injection ASI05:2026 Critical
SENT-015 Server-side request forgery ASI02:2026 High
SENT-016 Unauthorized operator-credential fallback ASI03:2026 High

Published IDs are compatibility contracts: an ID is never renumbered or reused for a different detection. The rule catalog documents each engine, boundary, false-positive risk, evidence, and remediation.

GitHub Action

The Marketplace Action runs the full Python pipeline, validates SARIF before upload, and preserves Sentinel's exit contract.

name: PortunusMCP Sentinel

on:
  pull_request:
  push:
    branches: [main]

permissions:
  contents: read
  security-events: write

jobs:
  sentinel:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - id: sentinel
        uses: BashaarJavaid/MCP-Sentinel@v1
        with:
          target-path: .
          fail-on: high
          openai-api-key: ${{ secrets.OPENAI_API_KEY }}

The Action exposes sarif-path, findings-count, and highest-severity. Forked pull requests, where secrets are withheld, run visibly degraded analysis and skip upload. High-assurance consumers can replace @v1 with the immutable commit SHA for the selected release.

Architecture

flowchart LR
    A[Untrusted MCP repository] --> B[AST + Semgrep rules]
    B --> C[Canonical candidates]
    C --> D[GPT-5.6 semantic review]
    D --> E[Bounded ordered probe attempts]
    E --> F[Docker sandbox]
    F --> G[Reviewed dynamic evidence]
    D --> H[Deduplication + provenance merge]
    G --> H
    H --> I[Console]
    H --> J[JSON 1.7.0]
    H --> K[SARIF 2.1.0]
    K --> L[GitHub code scanning]

Static analysis never imports or executes target code. GPT receives bounded, redacted context and can only review existing candidates or order four permanent inert probes. Dynamic analysis mounts local Python source read-only in fresh containers with no runtime network, resource limits, and forced cleanup. All stages feed one canonical Finding model consumed by console, JSON, and SARIF.

PortunusMCP Sentinel is the build-time plane of the PortunusMCP family. The PortunusMCP Gateway provides runtime enforcement in a separate repository, while PortunusMCP Identity is the separate short-lived credential-broker plane. Neither is required by Sentinel.

Configuration and adoption

Configuration precedence is CLI → SENTINEL_* environment → target-root sentinel.toml → built-in defaults. A normal full scan also requires sentinel.target.yaml and sentinel.permissions.yaml; --static-only does not require launch configuration.

Create a baseline from a complete native JSON report, then compare later scans:

sentinel scan . --allow-degraded --format json --output sentinel-baseline.json
sentinel scan . --allow-degraded --baseline sentinel-baseline.json

Matched findings remain visible but do not affect --fail-on. Sentinel never updates a baseline automatically.

Suppress a reviewed static source finding with a reason-bearing directive:

# sentinel: ignore[SENT-005] reason=test credential is inert and rotated
api_key = "ghp_example"

Only static SENT-001–SENT-007 and SENT-012–SENT-016 findings can be suppressed. Applied suppressions remain visible in every report; malformed, duplicate, unknown-rule, or reasonless directives fail configuration validation.

Use Sentinel from pre-commit:

repos:
  - repo: https://github.com/BashaarJavaid/MCP-Sentinel
    rev: v1.4.0
    hooks:
      - id: mcp-sentinel

See the configuration guide for LLM endpoint trust, rule selection, baselines, suppressions, and pre-commit.

CLI and report reference

# Full static, GPT, and Docker analysis
sentinel scan ./path/to/server

# Static analysis with required GPT review
sentinel scan ./path/to/server --static-only

# Validated SARIF
sentinel scan ./path/to/server --format sarif --output results.sarif

# Select rules and change the failure threshold
sentinel scan ./path/to/server --rules SENT-001,SENT-005 --fail-on critical

# Exercise the packaged reference pipeline
sentinel demo --replay-review --verbose

--fail-on accepts critical, high, medium, low, or informational. Console output is the default; --format json and --format sarif are stable machine-readable paths. Validate reports offline with:

python -m sentinel.schema check
python -m sentinel.report.validate_sarif results.sarif

The production reviewer uses GPT-5.6 Sol through the Responses API with store: false, medium reasoning effort, strict Structured Outputs, bounded context, and host-validated evidence. Sentinel's public OpenAI cost calculation uses the rates recorded on 2026-09-04: $4/M input, $0.40/M cached input, and $20/M output, with cache writes at 1.25× input. See the official GPT-5.6 Sol model and pricing page and Responses API create reference. Compatible endpoints retain token usage but report pricing as unavailable.

Project resources

PortunusMCP Sentinel is MIT licensed. Dependency licenses and packaged notices are recorded in THIRD_PARTY_NOTICES.md.

Metadata

Release files for portunusmcp-sentinel 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for portunusmcp-sentinel 1.4.0
File Size Uploaded
portunusmcp_sentinel-1.4.0.tar.gz 446.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for portunusmcp-sentinel 1.4.0
File Interpreter ABI Platform
portunusmcp_sentinel-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / portunusmcp_sentinel-1.4.0.tar.gz

Download URL portunusmcp_sentinel-1.4.0.tar.gz
Size 446.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3f61b8a914f6fe4fe3a8d10521c031dfa00a1e80132291b35d719640f371d4c6
BLAKE2b-256 checksum
How to use checksums
99e0e4b10e3fdbab1e57d66479defdf7d9cbafe07395ce50c0f9f45be65218cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / portunusmcp_sentinel-1.4.0-py3-none-any.whl

Download URL portunusmcp_sentinel-1.4.0-py3-none-any.whl
Size 586.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc9c0155b08687e2a50e327cca4ebc8b7be759539eaef3e4aa4e08801d23f1af
BLAKE2b-256 checksum
How to use checksums
95208076bb533e611ab8e650d47568b9aa245d93c896d0d4f75dd39a81deaba3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.0.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page