Skip to content

Settings ownership P40: constructors (E2992 minimum v8) #2993

Closed

Description

@mblua

Current selected candidate: P40 / minimum plan v8

Parent epic: #2992. Technical consensus is complete for the exact digest set below. Human plan approval and implementation authorization remain pending.

This existing OPEN child is explicitly reconciled from its earlier delivery unit (Settings ownership P01: constructors (E2992)). The previous specification is preserved below as historical material; it does not authorize execution. The frozen phase identified here is the current specification.

Situation and intended behavior

Normalize SettingsState construction through the public constructor while preserving its current alias, values, inference and cfg.

  • Class: mechanical
  • Owner: ac-dev-rust-v5
  • Depends on: none
  • Planned branch, created only at phase start after dependency merges: refactor/2993-settings-owner-p40-constructors.
  • Design source: c61cfbdeecb3bc20a1a9d7308fd6e67bb2df99d5.
  • Canonical master: D:/0_repos/AgentsCommander_iac/.ac/plans/2992-settings-owner/plan-v8-settings-owner.md.
  • Plan-SHA256: 05C031F312B3AA730F4D6B9528A65E3EC4E7470903CC83E923B8204D6CE4E8D2.
  • Canonical phase, sole implementation specification: D:/0_repos/AgentsCommander_iac/.ac/plans/2992-settings-owner/P40-v8-constructors.md.
  • Phase-SHA256: 3BA97AE75ED6D3D87C878A6C01292A46C867719596B955DD2D536357EE9EEFA7.
  • Execution mapping: D:/0_repos/AgentsCommander_iac/.ac/plans/2992-settings-owner/phase-issues-v7.json (stable filename used by reused phase files; the selected digest set is v8).
  • Exact five-participant consensus: D:/0_repos/AgentsCommander_iac/.ac/project-shared/2992-settings-owner/minimum-path-20261016/full-r3-consensus-approved-v1.json.

Files (MODIFIED only; no ADDED or REMOVED tracked files)

  • src-tauri/src/config/settings.rs
  • src-tauri/src/agent_update.rs
  • src-tauri/src/commands/ac_discovery.rs
  • src-tauri/src/commands/config.rs
  • src-tauri/src/commands/entity_creation.rs
  • src-tauri/src/commands/pty.rs
  • src-tauri/src/commands/session.rs
  • src-tauri/src/commands/window.rs
  • src-tauri/src/config/sessions_persistence.rs
  • src-tauri/src/lib.rs
  • src-tauri/src/phone/mailbox.rs
  • src-tauri/src/pty/inject.rs
  • src-tauri/src/pty/remote_watcher.rs
  • src-tauri/src/pty/terminal_snapshot/acceptance_tests.rs
  • src-tauri/src/resource_monitor/watchdog.rs
  • src-tauri/src/session/auto_close.rs
  • src-tauri/src/update_check.rs
  • src-tauri/src/web/commands.rs
  • src-tauri/src/commands/co_managed.rs
  • src-tauri/src/loops/delivery.rs
  • src-tauri/tests/pty_lifecycle_regression.rs
  • src-tauri/tests/pty_powershell_managed_native.rs
  • src-tauri/tests/wake_consumption_measure.rs

Acceptance

Only mechanical constructor changes; all-targets compilation, the three Windows integration-test binaries and the existing co_managed/delivery suites remain green. No wrapper tests.

Follow every phase-specific acceptance case, positive control, source/permission/durability invariant and staged boundary in the frozen phase. Keep every intermediate main green with landed phases only; exclusive ownership is activated in P50.

Verification commands and delivery gate

Run from D:/0_repos/AgentsCommander_iac/.ac/room-09-ac-dev-team-v5/repo-AgentsCommander, only after human approval and the phase handoff:

cargo +1.98.1 check --locked --all-targets
cargo +1.98.1 fmt --all -- --check

Also run the exact focused test commands and structural guards in the canonical phase, requiring nonempty test execution and all triggered/required CI checks green on the exact PR head. Commands above are future checks, not executed results. Preserve the fixed toolchain and lockfiles. One phase branch/PR at a time; the phase PR closes this child only, not the epic.

Scope authority: normal CLI without elevation remains required. The user excluded High CLI with Medium owner; the cancelled UAC probe is not an acceptance prerequisite. Other included permission, protected-field, recovery, retention and QuitGate guarantees remain.


Historical pre-minimum specification (superseded; preserved verbatim)

Parent epic: #2992

This is the approved P01 delivery unit of the settings-owner plan.
Technical consensus is complete. Implementation awaits explicit user plan review and coordinator authorization; no branch or product change has started.

Situation and intended behavior

The epic centralizes settings operations for app and CLI/daemon while preserving source composition, authorization, failures and durability. This child implements only its approved phase below, after its dependencies have landed.

Replace only SettingsState construction with config::settings::new_settings_state(value). Add that constructor returning the unchanged alias. Include inferred constructors passed to a SettingsState parameter in these files. Preserve each value and cfg boundary. Existing test write/read seams stay unchanged. This is the genuine mechanical >10-file exception: one constructor rule, validated by cargo check --locked --all-targets and the full Rust regression suite; no runtime behavior changes. Source anchors: Rust evidence table C/F; lib.rs:4419 is the productive constructor. No new modules or dependency pairs.

Only listed files may change. Preserve unrelated formatter debt and user data. Shared-file handoff is merged main, owned by the next authorized phase; never private scratch.
Main must compile/test using only landed code. Before P20 the new authority stays inactive with legacy transactional behavior; P20 removes staging and activates only the completely migrated set.
No intermediate cut publishes a second active memory authority or promises sole-writer memory freshness while legacy writers remain.

Approved identity and ownership

  • Phase: P01
  • Class: mechanical
  • Owner: ac-dev-rust-v5
  • Depends on phase IDs: none
  • Files: 18
  • Canonical phase: D:/0_repos/AgentsCommander_iac/.ac/plans/2992-settings-owner/P01-v5-constructors.md
  • Phase-SHA256: EAFCE8CE1FCCBF7E8A1B07599293DC7BBEC0DE4F130D7D01C6B5B65F98C2AF4B
  • Master: D:/0_repos/AgentsCommander_iac/.ac/plans/2992-settings-owner/plan-v5-settings-owner.md
  • Plan-SHA256: C142BB7BF5EDC96C5E88AA70A5A217B54D37E41F2E0B04ABD4A4AD9D8A69B0A5
  • Source reference: f6e5d08882ba9b208b56afe1fec44efb04925205

The canonical phase file is the sole cold-start implementation specification. This issue is tracking and a review summary, not permission to make new design choices. Child/branch/execution identity belongs in the separate coordinator mapping; no certified Markdown is edited.

Planned modified files

  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/config/settings.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/agent_update.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/commands/ac_discovery.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/commands/config.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/commands/entity_creation.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/commands/pty.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/commands/session.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/commands/window.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/config/sessions_persistence.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/lib.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/phone/mailbox.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/pty/inject.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/pty/remote_watcher.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/pty/terminal_snapshot/acceptance_tests.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/resource_monitor/watchdog.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/session/auto_close.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/update_check.rs
  • D:/0_repos/AgentsCommander_iac/.ac/room-18-ac-dev-team-v5/repo-AgentsCommander/src-tauri/src/web/commands.rs

No tracked source files are added or removed. The phase's explicit preserve sets, protected behavior and budgets remain binding; P01 alone has the approved constructor-only mechanical exception.

Acceptance and verification (future work)

All following cases are FUTURE, owner-executed tests using existing inline modules, tempdirs, saver fault seams, controlled clocks/barriers. Prefix new cases e2992_p01_ in each named module. No generic harness/dependency or runtime execution during planning. Execute focused commands only after the Cold start block has initialized R/EVIDENCE and captured the actual authorized phase base.

Test location Named suffix / stimulus and control Required observable result
src-tauri/src/config/settings.rs constructor_shape Compile all targets and inspect full diff: only constructor calls/value-preserving imports change; aliases, read/write behavior and cfg boundaries unchanged. No wrapper-only test.
Constructor-only compile/diff validation is sufficient; do not add wrapper-mirroring tests for this mechanical cut.

Preserve existing source/permission/error contracts. Failed, absent or timed-out evidence stops delivery and returns the exact discrepancy to architecture; no widening of the frozen file table.

Execute the phase's complete local verification, structural and exact-head CI gates from its canonical file only after authorization. Every dependency must be merged into main; one sequential phase/PR at a time. A phase PR closes only this child. The epic remains open through all phases and the requested final shipper build. No installation, release/version bump or other persistence-domain migration is authorized.

Activity

  1. changed the title [-]Settings ownership P01: constructors (E2992)[/-] [+]Settings ownership P40: constructors (E2992 minimum v8)[/+] on Oct 16, 2026
  2. mblua commented on Oct 16, 2026

    @mblua
    OwnerAuthor

    The user approved the exact minimum v8 set with “ok, dale,” after reviewing the 11 phases, 69 existing modified files, and the requirement that every phase leave the app functional.

    Plan-SHA256: 05C031F312B3AA730F4D6B9528A65E3EC4E7470903CC83E923B8204D6CE4E8D2
    Approved identity SHA256: 7CD47D8C1693CAD59CC01D7837B01F7878ABA7A7558FB75B5A349F5C5F644E63
    Approval receipt: D:/0_repos/AgentsCommander_iac/.ac/project-shared/2992-settings-owner/minimum-path-20261016/full-r3-user-approval-v1.json

    All five exact technical votes and native child links were verified. The room cold-start gate completed dry_run_ready → exact digest recheck → purged, exit 0; post-purge hashes match. Execution starts with P40/#2993 only; subsequent phases start after predecessor landing. The elevated CLI/Medium owner case remains excluded; normal CLI remains required. No UAC probe is pending. App behavior and all required checks remain acceptance gates, not already-proven results.

  3. added a commit that references this issue on Oct 16, 2026
  4. mblua commented on Oct 16, 2026

    @mblua
    OwnerAuthor

    P40 delivered in PR #3053, merge c6cc9d0. The mechanical constructor change preserves the existing alias, values and behavior. Independent Rust/architecture/UI reviews and focused merge review passed; local compiler/npm guards and75tests passed. Every triggered and configured-required CI check passed on tested head0197829d8e577984d8bede2cf4556daa1a74009d, including Windows/Linux/macOS. Later main delta was README/quickstart documentation only and audited on the PR. Epic #2992 remains open for P41–P50; no final build or installation at this phase.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions