Skip to content

refactor(settings): prepare owner recovery (refs #2994) - #3056

Merged
mblua merged 22 commits into
mainfrom
refactor/2994-settings-owner-p41-owner-recovery
Oct 18, 2026
Merged

mblua merged 22 commits into
mainfrom
refactor/2994-settings-owner-p41-owner-recovery

Conversation

@mblua

@mblua mblua commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Stages the settings owner, lifecycle exclusion, strict single-capture reads, and recovery APIs for P41. Managed operations remain disabled until the later activation phase. The stale context-menu test deliberately executes its retained RAF callback after reopening and preserves the geometry, identity, and listener assertions.

Relative to integrated b127c4edf664ec4732d805fa8c370822f824538e: four modified files, no additions or deletions. Linux/macOS screenshot guards retain their 33/32 cases, and both P41 focused-test steps remain in the workflow.

Validation on b059e2bb5e246d0309a4d1c9bc3c7fb659ff2335:

  • Native: all-targets check, actual Clippy/cognitive analysis, formatting, three integration compile targets, and all 91 expected runtime cases accepted by independent review. Discovery and runtime names match. Only the 13 expected caught recovery panics occurred.
  • Frontend: the existing 462-test, typecheck, and build evidence is independently qualified by unchanged corresponding inputs and the complete 102-file dist output; historical runs are not relabeled as new execution.
  • Structure: fresh clean PRE/POST extraction preserves all 131 SCC sets and the existing 89-member cycle; no module pairs were added or removed. Regenerated arcs are byte-identical, and current arc/cycle guards pass. Both independent structural reviewers accepted the result.

Evidence limitations: the integration compile succeeded, but its post-check rejected Cargo’s relative executable paths. Independent review verified all three ordinary files inside the allowed build directory; the original guard failure remains recorded. No compiler or test was rerun to hide that result.

The original-baseline whitespace check remains nonzero solely for four unchanged upstream Markdown hard breaks in docs/releases/v0.45.1/release-plan.md:5-8; the own-change check is clean. The existing explicit exception is bound to this candidate by the adopted v13 amendment.

All required and triggered CI must pass for this published head before merge, including Windows targets, Linux/macOS focused P41 execution, and screenshot sentinels.

Part of #2992.
Closes #2994

Step 9.5 review of main moving from b127c4edf664ec4732d805fa8c370822f824538e to 8118af2761599dcabddbce4195edd9961181b576 (#3112): UI and independent Rust review classify the delta as unrelated to P41. It adds optional, runtime-erased hash-debug type fields and expands existing IPC transport fixtures from 4 to 12 cases. Production transport behavior, native inputs, owner/serialization contracts, and the Telegram-menu RAF route are unchanged.

Keep the tested candidate b059e2bb5e246d0309a4d1c9bc3c7fb659ff2335 and its current CI run. Existing validation remains evidence for that exact head; it does not validate the new frontend bytes or additional cases on main. Landing still requires every required and triggered check to pass for this head, with actual CI checkout/base/parent evidence verified.

mblua and others added 6 commits October 16, 2026 20:06
…2994)

E2992 P41. SettingsState becomes Arc<SettingsOwner> through the P40
constructor; the product stays in StagedCompatibility with lock
forwarding and managed operations disabled.

- SettingsOwner: one AppSettings RwLock, availability metadata, read
  guards/permits, retention and identity from RAM, drain that releases
  the lifecycle authority last.
- Lifecycle lock settings.owner.no-git.lock in the retained physical
  directory; SettingsOperationGuard holds it plus the transactional lock.
- capture_sources_locked/compose_captured_sources: one capture of base,
  project-paths, agents and overlay; pure selector and parser core
  extracted from the existing loaders.
- OperationEffect/OperationOutcome classification with recapture,
  adoption or sticky Invalid.
- Registry rows for the owner lock and endpoint metadata.
- Linux/macOS CI legs list, assert non-empty and run e2992_ lib tests.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
)

Co-Authored-By: Claude <noreply@anthropic.com>
…#2994)

Operation admission is an RAII guard, so drain always terminates. Capture,
builder, classification and recapture run under one catch while the state
guard, lease and transactional lock are held: a panic before any publisher
is Rejected, after one it is PartialOrUnknown plus sticky Invalid. A panic
before the guards is a worker error. lifecycle_alias now uses link-free
physical aliases (canonical spelling, case variant).

Co-Authored-By: Claude <noreply@anthropic.com>
@mblua mblua added the ci:full Run the full PR regression gates on this PR label Oct 17, 2026
@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

Step 9.5 main-drift triage: compatible, unrelated change confirmed by Rust Grinch.

Feature head remains 6983688. Main advanced from 7b4191f to 6bff4a5 through PR #3065 (commits 526c5ce, 0b4c452 and merge 6bff4a5).

Only src-tauri/src/pty/watchers/mod.rs changed (+177/-2): Codex Working detection additionally checks physical rows, plus five i3059 regression tests. Imports are unchanged. The existing settings WatcherEntry/WatcherDedupe/WatcherMode symbols are untouched on both sides; P41 owner/recovery, staged compatibility, strict capture and publisher tests share no changed symbol or fixture with this delta. No build configuration, dependency, lockfile, workflow or module-arc input changed. The e2992 filter is unaffected. Static merge-tree comparison was clean.

Under the agreed Step9.5 unrelated-delta rule, no branch refresh or extra CI is required solely for this main advance. Existing local acceptance and reviews remain valid for unchanged head; all required and triggered checks still must be verified green on that exact head before landing. CI completion has not yet been certified here. This static triage does not claim execution of the new watcher tests in the feature checkout.

Evidence: D:/0_repos/AgentsCommander_iac/.ac/project-shared/2992-settings-owner/minimum-path-20261016/p41-main-drift-rust-triage-v1.md/json and p41-main-drift-v1.diff. Report SHA256 7EF5CF78A7E8528A0A7AEBA6B638BCDCF1B0C142F5E09A7A6AB97B048AB5175A. This decision covers main through 6bff4a5; any later delta must be assessed before landing.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

CI accepted on exact9cbd4f2ddd7d33944b720d24731bf89c307deacb: all24 triggered checks and all14 current required contexts are green (run39048384242 attempt2). The Windows installation-test failure from attempt1 did not reproduce in the unchanged full job; no fix or additional diagnosis was pursued. macOS/Linux and P41 tests passed. Evidence: D:/0_repos/AgentsCommander_iac/.ac/project-shared/2992-settings-owner/minimum-path-20261016/p41-ci-9cbd-final-green-v1.json.

Landing is held for a relevant newer main delta: PR #3064/main00888155 adds containerOptionsEnabled, default/serialization tests and historical-control handling in settings.rs. Unlike the earlier watcher-only delta, this overlaps P41 schema inputs. Rust owner is integrating it locally on the same branch; focused review, local validation and full CI of the integrated head are required before landing. The old green result does not certify that future integrated head.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

P41 local integrated head 1d7f22f incorporates relevant schema change from main 0088815; three focused source reviews PASS. The later main delta 0088815..85ed7f5 (PR3074 screenshot destination/containment; PR3076 sidebar halo scheduling/tests) is UNRELATED_CONFIRMED by Rust, architecture and UI reviewers: no P41 sources/imports/dependents or build/config/lock/workflow inputs changed. No further integration for this delta. Evidence: p41-main-after-container-unrelated-accepted-v1.json. Local shipper verification and fresh full CI on 1d7f22f remain required before landing; prior green9cbd is historical only.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

CI run39058216511 attempt1 failed for PR head 1d7f22f. Linux/macOS screenshot suites passed33/32 tests but fixed workflow guards expected31/30; their later E2992 steps were skipped. Frontend failed one ProjectPanel context-menu callback-count assertion (4076passed/1failed).

The checkout log proves CI executed GitHub merge fd50621, merging this head into main85ed7f5b. That includes the previously reviewed screenshot/sidebar changes, even though those paths are absent from the feature-head diff. The screenshot delta adds two tests without updating fixed counts; the sidebar delta edits the failing test. P41 causation is not established; this is not classified as flaky or waived.

Per the scope guard, request exactly one unchanged-head/conditions rerun of the three failed jobs before proposing fixes. No product, environment, workflow or threshold changes; no merge while checks are red. Evidence: p41-ci-1d7-first-failure-v1.json and raw logs in the existing E2992 evidence directory. If reproduced and unrelated, a separate scoped proposal requires user authorization before repair.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

CI run39058216511 attempt2 reproduces all three failures from attempt1 on the same PR head 1d7f22f and GitHub merge checkout fd50621. Linux/macOS screenshot suites pass33/32 but fixed guards require31/30; the same ProjectPanel old-callback assertion fails (4076 frontend tests pass,1 fails). The later E2992 steps remain skipped on Linux/macOS.

No code, environment, workflow, runner or threshold change was made for reproduction. No further retry, repair, follow-up issue or landing is authorized. The failure sites match upstream screenshot/sidebar changes in the CI merge; P41 causation is not established. The previous direct-contract unrelated classification did not predict these upstream CI failures and does not waive them.

Concrete next-scope proposal prepared for user authorization: correct screenshot count guards while retaining test/sentinel protection, and specialist-owned minimal correction of sidebar callback/test incompatibility while retaining stale-callback protection. Preserve P41 owner/recovery/Staged/R2 contracts; no broad cleanup/harness/dependency/version changes. Alternative: await an upstream fix. Required reviews and fresh exact-head CI remain mandatory.

Evidence: p41-ci-1d7-reproduced-blocker-v1.json, both attempts and logs in the existing E2992 evidence directory. PR remains OPEN and merge is blocked pending this separate scope decision.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

Main advanced from fe59d4dcce5b95ab72e931168a2bc051c326b65d to release merge 29fad1be70cc730407ebdd41c9690d1ccb8a5cf7 after this candidate was published. Rust's bounded review identifies relevant build/config/workflow changes: version0.45.1 in manifests, locks, Tauri config and installer, plus the equivalent Linux33/macOS32 screenshot inventory repair. Dependency resolutions and product Rust/frontend source trees are unchanged.

Requested cancellation of regression run39073654636 on a77f8a852e02164a7827ed993bb9b39eae9c2fc5 because delivery requires an integrated candidate and fresh exact-head CI. Cancellation was accepted as a request; the checkout remains on a77 until termination is confirmed. No CI success is claimed.

Under the existing approved amendment's C2 rule, integration will adopt upstream screenshot comment/count bytes while retaining the two P41 E2992 blocks and the still-needed UI test repair. Upstream release metadata is preserved; this PR performs no separate version bump, release or installation.

The existing source reviews, local87Rust/155frontend results and structural evidence retain their original head/PRE attribution. The final candidate must prove reusable inputs, refresh affected build/Rust checks and pass all triggered/configured-required CI before merge.

Evidence: .ac/project-shared/2992-settings-owner/minimum-path-20261016/p41-main-release-triage-v1.md/.json and p41-main-release-triage-accepted-v1.json. No new design, phase or scope exception is required.

@sonarqubecloud

Copy link
Copy Markdown

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

Labels

ci:full Run the full PR regression gates on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Settings ownership P41: owner recovery (E2992 minimum v8)

1 participant