Skip to content

fix(ui-server): admit schedule Git publication through writer gate - #2276

Merged
schlessera merged 1 commit into
mainfrom
fix/2268-schedule-writer-admission-schedule2268
Oct 17, 2026
Merged

schlessera merged 1 commit into
mainfrom
fix/2268-schedule-writer-admission-schedule2268

Conversation

@schlessera

@schlessera schlessera commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Closes #2268. Refs #1668.

What changed

Schedule Git ignore probes now acquire existing shared writer admission before selecting and running the project executable, retaining admission through native publication and cleanup. Active peers’ protected folder plans are inherited even after the policy is removed. Native publication refuses removal of a retained folder or ancestor atomically; ordinary ignore answers and permitted publication continue.

Why this shape

The asynchronous probe has writable output and evaluates project-selected Git. Existing shared admission supplies the required publication guard and preserves concurrent shared writers. Required unavailable gates prevent process creation. A server patch changeset records the behavior; no CLI/MCP/frontmatter contract changes.

Proof

Candidate 0ff4b45, source base 28c1106. Tests use fictional offline fixtures.

  • Real Git schedule/capacity controls: 5 tests / 24 assertions pass. Shared admission is observed at actual child creation; exclusive and required-missing gates prevent that child, and Git failure releases only owned admission.
  • Actual native Btrfs manager, writable stage, final publisher and postmount-qualified live peer: both folder and ancestor removal refuse with unchanged inode identities and no sibling output. A subsequent safe publication succeeds and the same peer remains writable. Both actual admissions inherit the retired policy’s retained roots and release only their own hold.
  • Causal mutation restoring gate: none makes three actual-Git assertions fail and the native named UNGATED_SCHEDULE_GIT_CANNOT_REPLACE_ACTIVE_PROVIDER_FOLDER assertion fail because the retained root disappears. Restored controls pass. Owned mount, loop, backing image and worker cleanup complete; user-namespace quota remains unchanged.
  • Strict types pass; lint/leakage and citation gates pass. Full pending changeset plan resolves all nineteen manifests with no major bump.
  • Required bun run check:pr --base origin/main completed metadata and 940 fast tests / 6252 assertions. Broader import-graph feedback is running and is not claimed green. Existing host-boundary/cancellation/credential-exclusion and schedule regression passes 26 tests / 114 assertions on an isolated combined-tree checkout (reviewed main 1ba7673 plus this head; tree 681b91502d5ff6d330feadd9eaa5a4d70367b4a4).
  • No other asynchronous publishing gate: none call remains in production. The remaining synchronous boundary call acquires immutable native input without output publication; its existing trusted-reader semantics are unchanged.

Checklist

A second worker reviewed the complete 5-file source and native lifecycle, finding no blocker. The standalone native receipts prove the named operation; the complete hosted file/matrix remains separately pending.

Anything left open

Broader feedback and hosted proof remain separately pending. This repairs the schedule writer-admission prerequisite only. Complete whole-folder all-writer qualification, positive mounted-writer provenance, worker exclusion activation and arbitrary type/glob criteria remain open in #1668. No new gate, global serialization, overlay, attestation interface or separate-UID authority is introduced.

@schlessera schlessera added this to the 0.44.0 milestone Oct 17, 2026
@schlessera schlessera added type: fix Something is broken and must behave the way it is documented. area: ui-server Hono app factory: turn coordinator, auth, session catalog, routes, cron. labels Oct 17, 2026
@schlessera
schlessera marked this pull request as ready for review October 17, 2026 08:23
@schlessera

Copy link
Copy Markdown
Owner Author

Merge assessment, 2026-10-17: exact head 0ff4b45, current main da32703, clean combined tree 7fffb123715dc380cf70f4a000f5dcd5b4f798e0. The intervening #2274 change affects native diagram proof preparation and wrapper fixtures; it does not change schedule admission, publisher, writer gate or the native helper. The isolated earlier combined-tree regression passed26 tests/114 assertions; the two actual Btrfs variants and causal mutation receipts retain their tested identities. An independent source review found no blocker.

Under the maintainer’s explicit instruction to merge after tests passed once without unrelated full refreshes, proceeding with ordinary matching-head squash. Ready confirmation39017203538 has selected jobs pending; the previous draft-only aggregate failed as expected and is not a green receipt. Broad local feedback remains running. No full hosted green, larger native-file composition, all-writer qualification or complete #1668 delivery is claimed. All three release milestones read back as0.44.0.

@schlessera
schlessera merged commit d1e9dba into main Oct 17, 2026
23 of 29 checks passed
@schlessera

Copy link
Copy Markdown
Owner Author

The previously running local preflight has now completed; it is not green. Fast invariants passed 940 tests / 6,252 assertions. Import-graph feedback ran 1,422 tests across 103 files: 1,421 pass, one failure, 14,061 assertions. The sole failure is the old app-wiring health/shutdown assertion tracked in #2262, independently repaired on main by #2282 after this frozen source was prepared. No other test failed in that feedback run.

The separately queued unchanged focused boundary cohort also finished: 26 tests / 114 assertions pass across four files, including schedule Git, host fallback and cancellation/credential exclusion. These retain their frozen source attribution; the actual native schedule publication refusal and restored causal mutation receipts remain as recorded. No unnecessary whole-suite refresh was dispatched, and this historical failed preflight is not being relabeled successful.

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

Labels

area: ui-server Hono app factory: turn coordinator, auth, session catalog, routes, cron. type: fix Something is broken and must behave the way it is documented.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ui-server: schedule ignore probes publish without shared writer admission

1 participant