Consolidate settings and durable turn admission - #1572
Merged
Conversation
Keep exact-abort result checks within the normal observation budget and use explicit readiness barriers for MetaSkill, channel reconciliation, restore lock contention, and concurrent owner registry writers. Test approval extension with a controlled clock instead of short wall-clock sleeps. Separate agent startup watchdogs from tool cancellation policy. Observe the actual tool batch grace and bounded policy, and exercise single/batch grace expiry with a controlled timer while retaining real outer watchdogs. Release and drain asynchronous work and synthetic child processes on failure. Production cancellation budgets and CI retry/shard policy are unchanged. Validation: 142 passed, 16 platform/environment skips across the seven related test files on native Windows; Ruff and git diff --check pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Frontend/backend separation left duplicate request interfaces, configuration write orchestration in Gateway handlers, and separate Web/Channel reservation lifecycles. This PR makes the existing contracts accurately represent required alternatives, gives AppSettings ownership of configuration policy and commit ordering, and uses one durable reservation/activation implementation for both interactive entry points.
Four main commits:
Non-goals: protocol replacement, database migration, domain-wide contract aggregation, a general ContractClient, or unifying CLI/Cron/Heartbeat ingress.
Maintenance accounting
At base
846bbc6b4and headd6a75c34aa, authored production code decreases by 313 physical lines; generators, scripts, and architecture enforcement increase by 91, for a net reduction of 222. Tests (+766), schema (-5), and generated output (+231 lines, -63,298 bytes) are accounted for separately. The complete PR has 4,041 additions and 3,271 deletions, a net increase of 770 lines. This is not a claim of large whole-repository code reduction. Moves and formatting are not claimed as architectural benefits.The principal benefit is deletion of duplicate business ownership: three overlapping settings write commit bodies become one, and two shared reservation lifecycles become one. Necessary entry-specific gates, collect behavior, input preparation, and delivery remain. No download, memory, or performance improvement is inferred from line counts.
Route feedback uses a small explicit domain result with required
acceptedand nullable optionalreason/recorded. Its Adapter returns the validated response without a type assertion. The architecture gate uses its existing generated-contract fence, with no field-specific public alias exemption or syntax recognizer. A type check compares the domain result with the wire fields in the Adapter test. Shared request capabilities and their input/output isolation remain.The final simplification commit removes 126 lines in total: 76 authored implementation lines and 50 test lines. Thirteen cases specific to the removed public-facade exception are retired; the general import/re-export fence and response/nullability checks remain covered.
Branch
Base branch: main
Target exception: N/A
The four main commits remain available in PR history for review. The protected main branch uses a squash merge queue; the final main commit will represent the complete PR.
Issue
Linked issue: None
Reason: scoped follow-up maintenance of the frontend/backend separation and its durable acceptance boundary.
Release Note
Release note: Correct generated request types with required alternatives and preserve accepted task identity and actual terminal state when activation compensation fails. Existing v4 fields and persisted layouts remain compatible.
Tests
Latest-head validation for
d6a75c34aa:vue-tsc: passed.The final commit changes only frontend domain types, architecture enforcement and their tests. Python implementation, contract schemas/generators, and Desktop implementation are unchanged from
6a0e521b9. Previously recorded evidence on those sources includes:Latest-head CI is pending. The preceding run had failures in Windows recovery-migration and Desktop profiles, and had not completed Windows contract determinism when this revision was pushed; it is not counted as green acceptance. Local passing checks do not replace the required current-head CI.
The default test path remains offline, deterministic, credential-free and safe for forks. Response validation, transport capability isolation, lifecycle failure coverage, timeouts and skip policies are retained. Deleted cases exercise only the retired public-facade policy.
Maintainer Live Check
Maintainer live check: no
Surface: N/A — validation uses synthetic, offline provider and channel fixtures.
Safety
Existing public v4 contracts, secret/environment provenance, sparse configuration persistence, old-config compatibility, read-only/safe-write rules, and reload ordering are retained. No database migration is required. Durable task compensation uses an exact task/session conditional update and never compensates a driver-owned task. The final frontend simplification is platform-neutral and changes no runtime wire fields or persisted state. The existing domain export remains available; the removed facade was introduced only on this unmerged branch. Native process/filesystem/network changes in the broader PR require platform CI in addition to macOS evidence; single-platform results do not establish cross-platform acceptance.
No secrets, user runtime data, private prompts, research notes, implementation plans, or machine-specific artifacts are included.
Third-Party Origin
Third-party origin: none
No third-party implementation, fixture, documentation text, or dependency is added.
Documentation Changes
No project documentation changed.