Repository navigation
E2432 selected-file P02: expose selected physical source snapshots and saves #2905
Description
Current selected-file delivery — P02
Situation: Settings and session selection currently use effective/global ID-based views. The user approved physical agents-file selectors in both menus and BASE-hash profile sharing confined to the selected file. Each menu remembers its own source. This child covers only the approved phase below.
Explicit reconciliation with the existing issue
The conditional catalog-publication need is now demonstrated by the approved physical-file selector/editor. Only its scoped snapshot/writer/preferences contract is activated; broad publisher coordination stays deferred. Historical specifications and their phase mappings remain intact below and in their frozen plan directory; they are not the execution contract for this new selected-file cut. No new issue is created or closed issue reopened. This is an explicit current-scope mapping, not evidence that the old broad package was implemented.
Certified phase identity
- Parent: IDs de agentes derivados de su ejecución — alcance mínimo #2432 (native link retained)
- Selected-file phase: P02; class: design-bearing; owner: ac-dev-rust-v5
- Depends on: P01 / E2432 selected-file P01: store profiles by BASE hash within each file #2902; sequential landing only
- Branch at phase start: feature/2905-selected-source-api
- Canonical epic: D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/plan-v7-selected-file-profiles.md
- Plan-SHA256: 2E09A6E856CA77EF70A1C47D9976DB93CF9206C9B0540434199E33FC8821A3BA
- Sole phase specification: D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/phase-v3-p02-physical-source-api.md
- Phase-SHA256: F33B3265428DC8352DA7B37C1792027210691224ADEB64BBA02B324BAFFF2436
- Exact five-party consensus: room-shared/profile-hash-link-intake/formal-round6-consensus-v1.json (author + four independent approvals)
Allowed files
- src-tauri/src/config/settings.rs — SourceReadContext inventory/authorization, dedicated snapshot/edit DTO, scoped writer and preference fields
- src-tauri/src/config/coding_agents_catalog.rs — narrow regular read/locked atomic publication facade
- src-tauri/src/commands/config.rs — four typed source API commands and inline fixtures
- src-tauri/src/web/commands.rs — matching supported browser source dispatch
- src-tauri/src/lib.rs — four command registrations in existing macro
Acceptance and focused validation
Rust owner authors new/updated inline e2432_ fixtures; Shipper executes them: actual finite inventory including instance catalog under active project; absent/unreadable/link/invalid; primary
drift/forged source; independent preference roundtrip/failure; missing remembered source yields null active/retained preference/zero tickets until explicit choice; first-use
absence exercises initial default separately; same ID/hash different sources; raw partial/remove and unknown retention; stale revision and
overlay refusal zero publishers; catalog lock contention/atomic failure; partial outcome/fresh reply. Run cargo test --locked --lib e2432_. Additive
endpoint state shippable before UI; no global source protocol activation.
Delivery authority and limits
User standing authorizations apply to exact consensus within this scope. Mapping/freeze/cold gate must complete before writes. The actual phase owner authors source/fixtures; Shipper executes the approved checks. Preserve current main and unrelated changes. A phase PR closes only this child after its acceptance checks; no broad historical requirement or parent Epic closure is implied. No final executable/GUI/input/install/release/version change requested.
Preserved historical issue record — not the current execution specification
Resolución vigente — reverificación de scope mínimo
Epic: #2432 (vínculo nativo conservado).
DIFERIDO — CONDICIONAL
Adaptar actualización del catálogo sólo si afecta identidad o referencias.
Fuera de la prioridad de lanzamiento actual. Mantener vinculado a la Epic para revisión posterior; no ejecutar por dependencias o aprobaciones históricas.
Objetivo vigente: «los ids de agentes cambien a unos ids que se desprendan de el string univoco que requieren ejecutar». Una ventana/editor. El usuario ordenó atacar únicamente lo estrictamente necesario y revisar el resto después. La auditoría de 22 hijos preserva diferencias entre necesidad conceptual y paquete histórico; no es consenso de implementación. Faltan definir el string/equivalencias y la compatibilidad de IDs anteriores antes de certificar el mínimo exacto. Hash determinista no prueba idempotencia. Las especificaciones y dependencias históricas no habilitan ampliar ni bloquear automáticamente el núcleo reducido. Esta resolución no elimina ni revierte comportamiento entregado; los estados abiertos/cerrados se conservan.
Evidencia: auditoría de cinco perspectivas por issue, base main d823839; artefactos locales room-shared/e2432-necessity-audit/issue-2905/.
Especificación anterior — antecedente histórico
El alcance ampliado siguiente no es la orden vigente de ejecución.
Part of epic #2432 (under #2429). This phase implements the certified catalog publisher coordination contract for independent coding-agent identities/layers and recoverable persistence. Existing references, defaults, locks and history must be preserved.
Specification
Canonical phase: D:/0_repos/AgentsCommander_iac/.ac/plans/2432-identity-layers/phase-v17-P18-catalog-publisher-coordination.md
Phase-SHA256: 6784139fa7322b30bcceadd3421e9da0fea20dd97d4481485691041a440c3a30
Plan-SHA256: 8393829484bb61d01034a79b6a5f1fb095bdf66927ee0854911b64681b884622
Version: v17; owner: Rust; class: design-bearing
Depends on: #2904
Files
-
src-tauri/src/config/coding_agents_catalog.rs
-
src-tauri/src/config/coding_agent_mutations.rs
-
src-tauri/src/lib.rs
-
src-tauri/src/commands/ac_discovery.rs
-
src-tauri/src/cli/open_project.rs
-
src-tauri/src/cli/new_project.rs
-
src-tauri/module-arcs.txt
Symbols
Symbols: catalog::CatalogPublicationPlan/prepare_catalog_publication/execute_catalog_publication_with_permit; mutations::coordinate_catalog_publication; lib::initialize_owned_catalog; startup/registration/CLI wrappers.
Acceptance
Implement exactly the frozen phase behavior, edge cases and failure contracts. Stay within this phase whitelist; preserve the inactive/activation and recovery ordering. All count-positive phase fixtures and required integrated-tree guards must pass before publication. Future tests are not claimed as run.
Verification commands
cargo +1.98.1 test --locked --manifest-path src-tauri/Cargo.toml --lib catalog_publication -- --list
cargo +1.98.1 test --locked --manifest-path src-tauri/Cargo.toml --lib catalog_publication
cargo +1.98.1 check --locked --manifest-path src-tauri/Cargo.toml --all-targets
cargo +stable fmt --manifest-path src-tauri/Cargo.toml --all -- --checkAuthorization
Technical consensus is complete. Human gate 7.5 is pending. No implementation or branch creation is authorized by issue creation. Current API lifecycle/FUP #2885 and #2436 remain outside this phase.
Activity
[-]I2432 P18: catalog publisher coordination[/-][+]E2432 selected-file P02: expose selected physical source snapshots and saves[/+]mblua commentedon Oct 20, 2026
P02 execution resumed after P01 merged in PR #3117 (merge 02e3601, verified ancestor of synchronized main). This phase's unchanged v3 specification and five-file scope remain authoritative.
Current exact-set identity supersedes the older aggregate-plan reference in the initial issue header: D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/plan-v13-selected-file-profiles.md, Plan-SHA256 17661B2D687117685D8B98BA69F9224F1FE83DF482CE86D47D8232179EFD18A8; D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/phase-v3-p02-physical-source-api.md, Phase-SHA256 F33B3265428DC8352DA7B37C1792027210691224ADEB64BBA02B324BAFFF2436. Same initial five participants approved the complete exact eight-document set: execution/P01/round12-exact-set-consensus-v1.json; approval/mapping receipts approved-identities-v6.json and phase-issues.json verified unchanged. All applicable prior human exceptions and standing in-scope authority remain complete.
Fresh room-wide cold gate succeeded (dry_run_ready then purged, exit 0; all eight peers idle and prior reports/commands complete). Active branch feature/2905-selected-source-api, phase base 02e3601. Shipper captures comparable clean PRE before source changes. Rust owns source and fixtures; Shipper owns application verification and POST. Two independent code reviews, current-main check, and applicable exact-head CI remain delivery gates. One phase PR closes only #2905. P03-P07, GUI/input, final executable, installation, release and version changes remain outside this phase.
mblua commentedon Oct 20, 2026
Default-ticket correction: technical score before new frozen candidates
Scope: Incremental default-ticket/pin/locked-skip correction to still-unimplemented P02-P07 contracts, not reimplementation/retest of delivered P01 or a new total epic estimate. The current source investigation found necessary pin-authority and protected-current-selection behavior missing from the old contract. No product changes have been made.
Historical scores are preserved with their distinct scope: original whole feature raw92/final44; prior P01-only remaining correction raw83/final39 (P01 is delivered). They are not additive or directly comparable with this newly evidenced correction.
Raw sum: 101. Final = round((101 - 10) / 190 * 99) + 1 = 48/100.
Full workflow retained because the correction changes persistence/wire/runtime contracts. State15 and concurrency11 retain architect/digests; verification12 retains independent proof review; blast14 retains complete file-impact presentation. Existing standing in-scope authorization and prior actual user exceptions persist; this score grants no scope exception, candidate approval or product-write release. The owning dev may dispute exactly one category with evidence before implementation.
Excluded ceremony: issue creation; branch naming/pushing; PR creation; waiting for CI; review rounds; delegation/messaging; plan/cold-gate ceremony; changelog/version bumps; merge/post-merge cleanup.
Evidence: D:/0_repos/AgentsCommander_iac/.ac/room-19-ac-dev-team-v5/room-shared/e2432-selected-file-profiles/execution/P02/p02-default-ticket-architecture-v3.md SHA256 0434ba62c9755f93641c694b452db5b698cd663d55b7ea93e521a2f9691350af; D:/0_repos/AgentsCommander_iac/.ac/room-19-ac-dev-team-v5/room-shared/e2432-selected-file-profiles/execution/P02/p02-default-ticket-architecture-review-v3.md SHA256 c277c762040a9660cd958a6ec741b531449db99134a70672e12b09545f3db35b; D:/0_repos/AgentsCommander_iac/.ac/room-19-ac-dev-team-v5/room-shared/e2432-selected-file-profiles/execution/P02/p02-default-ticket-owner-feasibility-v3.md SHA256 d237a161c04ac261a5541672c97bbd03d6b9b7fa80f402670f7e2c1269671087. One known constructor/introducing-phase boundary remains for architect to record. No new optional work, broad harness or P01 rerun is introduced by this score.
mblua commentedon Oct 20, 2026
Round13 exact-set consensus is complete: architect certification plus Rust owner, UI owner, Rust Grinch and Architecture Grinch all explicitly approved identical eight digests. Current authority is D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/approved-identities-v7.json; mapping D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/phase-issues.json updated with preserved old snapshot.
Current overall D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/plan-v14-selected-file-profiles.md, Plan-SHA256 14FE7B7BA06A57ECD5E23A1F41D408754DD655A692C62A06C29F34A0D4D6981D. Sole P02 specification D:/0_repos/AgentsCommander_iac/.ac/plans/2432-selected-file-profiles/phase-v4-p02-physical-source-api.md, Phase-SHA256 B3FD15E7D901770B6336E7A7813D4E6B47445CB2C1C3D7BF10070670E46EF657. These replace the earlier aggregate/phase references for current execution. No old vote transferred; complete exact receipt execution/P02/round13-exact-set-consensus-v1.json. P01 stays delivered/closed at PR #3117; P02 closes only #2905.
The missing default-ticket contract is resolved: source read/save remain source-only, null snapshot pair is informational while source/context/hint/BASE validation stays strict; later target operations normalize current defaults, preserve real pins/locks and source authority. Backend profile orchestration stays above settings. P02 alone is now assigned to Rust, same five existing files; later marker/runtime/wire/UI changes remain their sequential phases. The exact full set also explicitly approves the necessary P04 +2 neutral constructor adaptation in an already globally listed file, no new global path or product-scope exception.
Fresh whole-room implementation cold gate passed after all reports/commands completed: all eight peers idle, dry_run_ready then purged, both exit 0, new identities rehashed before/after. Active branch feature/2905-selected-source-api; clean release HEAD/base/origin-main 02e3601. Comparable PRE retained. Source assignment receipt execution/P02/p02-round13-approved-source-dispatch-v1-receipt.json.
Implementation and meaningful inline fixtures are pending owner output. Both independent code/proof reviews, Shipper phase checks/POST/guards, current-main verification and applicable exact-head CI remain before publication/merge. No P01 ceremonial rerun, GUI/input, final executable, install, release or version change requested.
mblua commentedon Oct 20, 2026
Cross-platform verification: PENDING_LINUX_TESTS
Developed on: Windows. Test on: native Linux/Unix.
Publication: NOT YET ON origin/main. PR #3141 is open, required exact-head CI pending. Tested feature head: 309b6e9. Landed origin/main SHA: PENDING; the exact merged SHA will follow after protected landing.
Available Windows proof: rustfmt, locked all-target check, 73 named tests (30 P02 Windows + 43 existing), three layering guards and both independent code/proof reviews PASS. Complete structural POST matches clean main: full 1211 module pairs and cyclic SCC members equal; generated/committed/PRE arc bytes identical. Windows F1 only simulates verifier failure, not physical owner replacement.
Required Linux runtime test: from repository src-tauri/, using the existing Linux Rust/Tauri toolchain/native build prerequisites and locked dependencies:
Expected: exactly 1 selected test, 1 PASS, no ignored/zero-match result. The fixture physically renames the retained owner directory, creates a replacement, invokes the real closed catalog operation, and requires an error plus SettingsAvailability::Invalid. Temporary fixture files only; no desktop/live settings or input capture.
Retrieve the landed main SHA once posted. Prefer that exact SHA; if testing newer main, record both SHAs and relevant intervening changes. Report in THIS issue: requested/tested source SHA, native OS/toolchain, exact command, selected/passed/failed/ignored counts, PASS/FAIL/BLOCKED, complete logs/artifact links and relevant errors. Compile-only, Windows simulation, skipped or zero-selected tests are insufficient.
Policy: explicit user 2026-09-09 Windows/Linux handoff policy supersedes an unavailable-other-OS-before-landing condition in the frozen plans ONLY for this missing runtime test. Plan bytes unchanged. Current failures, reviews, required CI and protected Git flow are not waived. Keep this child and #2432 OPEN with requires-test-linux; dependent P03 cannot start until sufficient passing Linux evidence is reconciled. The user chooses/routes the Linux group after main publication; no cross-room request has been sent.
mblua commentedon Oct 20, 2026
CI blocker on exact head 309b6e9; PR #3141 remains unmerged.
PR regression gates run https://github.com/mblua/AgentsCommander/actions/runs/39510569752 failed in BOTH strict Clippy steps: clippy-linux (job118930259278) and rust-regression/Windows (job118930259563). Eight unique diagnostics are in the current P02 code: type_complexity, three needless_borrow sites, unnecessary_get_then_check and three field_reassign_with_default sites. The Windows regression runtime step was not reached. Existing local 73 tests/full structural POST remain valid for this unchanged head, but do not waive red CI.
Fresh origin/main remains 9ce147f and is already included; no incoming changes. ONE unchanged failed-job rerun is authorized to confirm reproducibility before a scoped repair proposal. No source, baseline, workflow, environment or threshold changes; no merge while required checks are red. Await native CI completion, no polling. PENDING_LINUX_TESTS and open child/Epic/dependent-phase gate remain unchanged.
mblua commentedon Oct 20, 2026
Controlled reproduction confirmed: run https://github.com/mblua/AgentsCommander/actions/runs/39510569752/attempts/2 failed again at strict Clippy in Linux job118934652164 and Windows job118934652362 on unchanged 309b6e9.
The same eight unique diagnostic messages, source paths, lines and columns match both first-attempt and repeated logs on both OSes. All affected lines were introduced during P02; current main9ce147f is unchanged and included. Runtime regression tests remain unreached, not failed test results.
The owning Rust developer is released for only these local behavior-preserving lint corrections in settings.rs, coding_agents_catalog.rs and commands/config.rs under the unchanged P02 plan. No lint suppression, baseline/threshold/tool/workflow/config change or scope expansion. Both focused reviews, strict Clippy/classifier, phase tests and full structural POST must pass on the new commit before republishing. No third unchanged retry or merge while red. PENDING_LINUX_TESTS and child/Epic/P03 gates remain.
mblua commentedon Oct 21, 2026
P02 delivery blocker on PR #3141, head 35aa29e. Code is NOT on main.
Run https://github.com/mblua/AgentsCommander/actions/runs/39519458364 attempt 1: rust-regression / cargo test failed. Clippy Linux, rustfmt, branch/no-plans/lockfile/test-debt and security checks passed; configured full-tier jobs were skipped.
Two exact settings overlay inventory tests failed:
Both actual lists contain the new P02 key agentFileSourceByMenu; their expected lists do not. The disk positional assertions also retain the old index layout. Git blame ties both production table additions to this P02 branch (78cc5df), while the old fixtures retain their original expectations. Actual lib result: 6532 passed, 2 failed, 26 ignored. The existing 73 focused P02/P01 tests and available-host gates remain valid but did not cover these two fixtures.
Fresh origin/main remains 9ce147f and is included by the clean active feature head. No source, baseline, workflow, thresholds, runner or environment changed.
One controlled failed-job-only rerun is being requested at the same SHA and workflow before owner rework, per the existing failure-scope guard. No merge or fix is authorized by this first isolated result. No retry-to-green loop.
PENDING_LINUX_TESTS remains separate: the Unix physical replacement test is still unexecuted, #2905/#2432 stay open, and P03 remains gated. Actual required CI failures cannot be deferred under the cross-OS policy.
mblua commentedon Oct 21, 2026
Controlled repeat completed: PR #3141 head 35aa29e, run39519458364 attempt2/job118969095368 again failed ONLY the same two local_overlay_1737 inventory tests. Both assertion locations and actual/expected arrays match attempt1; both lib outcomes are 6532 passed / 2 failed / 26 ignored. Fresh main9ce147f remains included and source/config identities are unchanged.
The demonstrated P02 relationship is the added agentFileSourceByMenu entry in both production inventories (78cc5df) versus existing exact inventory/index fixtures retaining their old expectations. This is now routed to the Rust owner as scoped compatibility rework of those two existing tests, preserving exact equality/serialized-field/index oracles and the approved production behavior. No baseline/threshold/runner/workflow change, new harness or third unchanged rerun is authorized. Required new-head reviews/checks/CI still gate merge.
Code is still NOT on main; #2905/#2432 remain OPEN and PENDING_LINUX_TESTS remains separate. No P03 or all-platform completion.
Merge pull request #3141 from mblua/feature/2905-selected-source-api
mblua commentedon Oct 21, 2026
Cross-platform verification: PENDING_LINUX_TESTS
Developed on: Windows
Test on: native Linux/Unix
Landed origin/main SHA: e78d199
PR: #3141 (MERGED)
Tested feature head: 3dc8d6f
The P02 backend is now available in origin/main. The merge tree is identical to the tested feature tree; the primary checkout is clean on main and the feature branch was removed.
Already verified on Windows: fmt/check; strict Clippy and enforcing cognitive classifier with zero NEW/STALE/CONFIG, unchanged threshold 25; both former overlay inventory failures individually with --exact (1 selected / 1 passed / 0 ignored each); 73 e2432 tests (30 P02 and 43 P01), plus three guards (1/5/3). Both independent code/execution reviews passed. Complete POST equals the clean PRE: all 1211 module pairs, full 89-member cyclic SCC and byte-identical 96449-byte arc record; known cycles and detector blind spots remain.
Exact-feature-head CI passed: https://github.com/mblua/AgentsCommander/actions/runs/39528208342 . All five triggered workflows succeeded. The normal ci-tier3474 full=false omitted the configured full-tier jobs; this does NOT supply Linux runtime proof.
Missing required native Linux runtime proof:
Retrieve the landed commit above in the target group authorized checkout; use the repo Rust/Cargo toolchain and documented native Tauri dependencies (Windows used Rust 1.98.1). No live-user configuration, GUI capture or installation into the running application is required.
From src-tauri run exactly:
cargo test --locked --lib config::settings::e2432_p02_closed_owner_tests::e2432_p02_owner_identity_loss_invalidates_catalog_authority -- --exact --nocapture
Expected: EXACTLY 1 selected test, 1 PASS, 0 ignored. The test must reach its real physical owner-directory substitution and actual closed catalog-save invalidation/refusal assertions. Compile-only, zero matches, ignored tests and the Windows verifier-error simulation are not physical Unix proof.
Report HERE: requested landed SHA, actual tested SHA, OS/toolchain, exact command, PASS/FAIL/BLOCKED, selected/passed/failed/ignored counts and complete log/artifact links. If using newer main, report both SHAs and relevant intervening changes instead of silently equating them.
Keep #2905 and epic #2432 OPEN with developed-windows and requires-test-linux. P03 must not start until this required Unix result is sufficient, verified and reconciled. No all-platform or whole-phase completion is claimed. No final executable/build was requested.
The explicit user policy of 2026-09-09 supersedes frozen-plan other-OS-before-landing requirements ONLY for unavailable target-OS execution. All actual code, local gate and required exact-head CI failures were resolved before protected landing. Frozen plan bytes were not changed. The user chooses/routes the Linux group; this room does not contact another room on its own.
mblua commentedon Oct 21, 2026
P02 delivered in PR #3141, merged to main at e78d199.
Windows validation, independent code/proof reviews, structural guards and the applicable exact-head CI checks passed. Delivery evidence: p02-v14-final-ci-and-landing-authority-v1.json and p02-v14-final-proof-and-publication-authority-v1.json.
The user explicitly instructed: “Olvidate, cerremos así como está y si luego explota en linux, veremos.” This cancels the pending physical Unix test as an acceptance blocker for P02. That test remains UNEXECUTED / NOT_PASS; no Linux success is claimed. This supersedes the earlier pending-Linux handoff only for this child, without waiving future phase checks or any failing CI/quality gate.
Closing #2905 as completed. Epic #2432 remains open for P03-P07. No final executable, installation, release or version bump was requested.