Repository navigation
Clarify agent and profile command fields with new-first legacy fallback #3018
Description
Current v8 delivery
The exact current approved set is root v8 with P01 v6/P02 v6/P03 v4/P04 v2. Five original participants approved every digest: room-shared/i3018-command-fields/round11-v8-consensus.md; immutable identities/file impacts: .ac/plans/3018-command-fields/approved-identities-v8.md. Root .ac/plans/3018-command-fields/plan-v8-command-fields.md SHA256 D4B4C721BD29B0CBD9D2814109B15659A9E15B50BC425A0C9C23EAEFD1E0B410. Earlier planning status, digest/version and pending-execution descriptions below are historical; the required behavior is unchanged.
| Phase | Native child | Delivery | PR | Phase-SHA256 |
|---|---|---|---|---|
| P01 | #3019 | DELIVERED | #3023 | 5DE41D6A55FC5B8E5975424075B4353160550B908605F2405E4FF87F3F7127FE |
| P02 | #3020 | DELIVERED | #3041 | 14EE3DBAFF528D0EBEE198D58B9DFEBE8D385F669B4733C6C3DE93788DEBD947 |
| P03 | #3021 | DELIVERED | #3043 | A507042CA993C757DDBC6C5B76F4CAB71F12FFF8DC77A0D773B474C2B8BE5053 |
| P04 | #3022 | DELIVERED | #3055 | 5631C0485E40252F947D883B48486B126B89CA4C921C79C264FA11E9F36990D3 |
All four phases are DELIVERED through PRs #3023, #3041, #3043 and #3055; all native children are closed. Combined final-main source evidence and the separate shared-policy receipt were verified at f24f55d. P04 exact-head CI passed all26 checks/statuses, including14 configured-required contexts with matching application IDs. Its final two document blobs match the reviewed head. Shared policy SHA256 91ea75420ad29c0b0407383bf3d0f5d2b032e8fedc6eb4a97ee3e83be1dce29c preserves the original bytes and adds the single approved section. Original identity mappings/bases/history remain in phase-issues.json. No build/package/install/release/version or id_hash-input redesign is added; #2432 and #3047 continue separately.
Historical v6 continuation
User authorized correcting both observed WebSocket lifetime failures. Five fresh whole-set approvals: room-shared/i3018-command-fields/round9-v6-consensus.md. Exact immutable identity and full file impacts: .ac/plans/3018-command-fields/approved-identities-v6.md. Same four children/branches/dependencies, original BASE/history retained. P01 now eight authored paths: prior six plus AgentPickerModal.tsx and AgentPickerModal.test.tsx. P02/P03v4 and P04v2 unchanged and explicitly compatible.
Incoming main a1a694b already contains d1c16a6 project stale-response guard and regressions. It was integrated conflict-free at bf9e7f9; local candidate93906794 adds only picker lifetime guard and paired deferred/live tests. Shipper integrated positives/negative-restoration proof and independent reviews are pending; no push or CI PASS claim. All applicable checks must pass exact new head before merge. No unchanged retry or CI/error guard weakening. No transport/harness/environment repair, packaging/version or id_hash input change.
Earlier six-file/current-HEAD statements below describe historical stages and are superseded only by this active continuation. Root/phase table digests below identify current v6.
Situation and current authorization
Both the coding-agent base command and appended profile argument text use a field named command. The user accepted renaming them to baseCommand and additionalArguments and authorized implementation.
This is a naming and compatibility change. The base remains command text that may contain fixed arguments/wrappers; it is not restricted to a pure executable path.
Required result — latest user amendment is authoritative
- Agent command text is written under
agents[].baseCommand; appended profile text undercodingAgentProfiles.profilesByAgent[agentId][profileLetter].additionalArguments. - On read, use the new field when it has content; otherwise use the legacy
commandfallback. New-without-content behavior must follow this latest instruction, not the earlier key-presence-only interpretation. Preserve ordinary validation of actual values and existing parsing semantics. - On write, all updates go to the new field only. Preserve every existing legacy
commandkey and its value, including when both names coexist. Do not delete, update or synthesize legacy fields. An old-only object remains readable; an authorized save adds/writes the new field while retaining the historical value for version hopping. - No cleanup writes during reads. Existing read-only/catalog/source-ownership contracts remain intact. Do not edit the user's live configuration directly during implementation.
- Preserve command composition, tokenization/quoting, placeholder expansion, profile selection, existing hash algorithms/preimages and references when selected values are identical. New-field precedence intentionally determines the selected value when the names disagree.
- Cover affected Rust/TypeScript DTOs and supported readers/writers, frontend editing/transport, direct/queued CLI, catalog and overlay sources and save/round-trip behavior. Use the existing IO/error/lock protections.
- Record this current general field-replacement policy in
.ac/project-shared/Guidelines/File-user-surface-naming-convention.md: read new-with-content first, legacy fallback, updates only to new, retain old unchanged. The earlier proposed deletion section is superseded and must not be published.
Scope and delivery
Native child of E2432. This issue does not redesign which profile/runtime inputs participate in id_hash. No executable packaging, installation, release or version bump requested. Deliver the minimum complete reviewed change through an issue-numbered branch and PR to main after exact new-plan consensus and cold gates.
Planning evidence: main/origin main f6e5d08882ba9b208b56afe1fec44efb04925205. P01 continues existing branch refactor/3019-tolerant-reader and PR #3023 at recorded HEAD 368efee27d55f6da97faae233fc2d0b8dc6a7fc7; original BASE/history retained. Refresh relevant target drift before implementation.
Current source evidence: settings.rs AgentConfig/ProfileCellConfig and sidecar source ownership; agent_command.rs compose_effective_command/parser/cell_identity; shared/types.ts and profile-utils.ts; local_overlay.rs raw object merge. Read-only Q&A evidence is in room-shared/e2432-id-hash/next-analysis/executable-naming-{architect,rust}.md. Literal latest user amendment is recorded in room-shared/i3018-command-fields/user-amendment-retain-legacy.md.
The user retains standing authorization for delivery after consensus within scope, without another approval question. All earlier deletion and unconditional-presence requirements are replaced by the latest amendment above.
Historical approved delivery partition (v6)
Five original participants approved the exact v5 root and complete phase set (including unchanged P04 v2). Standing user authorization applies; cold execution gates remain mandatory.
Root: D:/0_repos/AgentsCommander_iac/.ac/plans/3018-command-fields/plan-v6-command-fields.md
Plan-SHA256: C0923225290F5535938F64BA91019EFD4C9DCD8DDC25075BE809AEB4688B8401
| Phase | Native child | Class / source owner | Dependency | Phase-SHA256 |
|---|---|---|---|---|
| P01 | #3019 | design-bearing / ac-dev-webpage-ui-v5 | none | 5DE41D6A55FC5B8E5975424075B4353160550B908605F2405E4FF87F3F7127FE |
| P02 | #3020 | design-bearing / ac-dev-rust-v5 | P01 | 519FDCFD506E983D4BC1100D27D00095B080D6B6FEC08A086E5179BA568FF664 |
| P03 | #3021 | design-bearing / ac-dev-webpage-ui-v5 | P02 | A507042CA993C757DDBC6C5B76F4CAB71F12FFF8DC77A0D773B474C2B8BE5053 |
| P04 | #3022 | mechanical / ac-technical-writer-v5 | P03 | 5631C0485E40252F947D883B48486B126B89CA4C921C79C264FA11E9F36990D3 |
Identity mapping: .ac/plans/3018-command-fields/phase-issues.json; immutable approval receipt and consensus reports remain outside product Git. P01 continues its existing branch/PR; create P02–P04 branches only after dependencies land. Each PR closes its child only. Close this epic after all children merge, combined source verification and the separate shared-policy receipt; E2432 remains open. No packaged build requested.
Approved P01 exception and v4 contract
The user explicitly approved three additional P01 files: src/resource-monitor/App.tsx, src/resource-monitor/App.automation.test.tsx, and src/sidebar/App.project-refresh.test.ts. P01 is six files. Register owner cleanup before async settings initialization, guard disposed mounts and release only owned polling; test deferred/live lifecycle and await Sidebar loaded completion without deleting assertions, changing fixtures/timeouts or redesigning stores/transports. Exact approved proposal SHA256: EA17BE48971F1376DF9CF6A31AB11B0CC48849C01E22721BD4B3CCFEAE06B48C.
Frontend responses preserve partial-field absence and unchanged legacy reference identity; both present command spellings remain strictly validated. Persisted Rust required/default validation remains unchanged. P02/P03 v4 reconcile this layer distinction; P04 v2 remains the persisted/general policy phase. Full exact v5 mapping/impact tables and persistent authority: .ac/plans/3018-command-fields/approved-identities-v5.md; no v3 vote transferred. Diagnostic variants were restored exactly, not published; actual corrected-candidate tests and supported Node22 exact-head CI remain required. No fourth temporary diagnostic or unrelated environment repair.
Reviewed v5 public result boundary
Pure codecs accept/return the exact partial aliases in P01v5. Exactly three documented public API assertions promote only successfully projected results to existing complete consumer types, trusting the typed Rust responses just as existing invoke does. No unrelated runtime schema validation, new defaults or consumer widening. Partial fake tests observe partial results; paired complete old/canonical fixtures preserve the complete API contract. This explicitly resolves the prior output-type blocker within the same six-file scope; all five fresh exact-set approvals are recorded. Actual typecheck/behavior/proof and exact-head CI remain future Shipper/CI obligations.
Activity
mblua commentedon Oct 15, 2026
Technical score and workflow — both fields plus user-defined replacement
The earlier 27/100 estimate covered only the profile field. User now authorized agent
command -> baseCommand, profilecommand -> additionalArgumentsand the explicit replacement policy.Raw=74/200. Final=round((74-10)/190*99)+1=34/100.
Ceremony excluded: issue/branch/push/PR, CI waiting, review rounds, delegation/messaging, changelog/versioning, merge and cleanup. Technical checks themselves are counted only as verification effort.
Score band26–55; Full delivery is required by schema/persistence and cross-cutting behavior, not by ceremony. State14 requires architect authorship; Verification10 requires meaningful proof review. Architect authors; Rust and UI owning devs plus RustGrinch and ArchitectGrinch independently review the exact immutable plan/digest set. Initial consensus participants are exactly these five. No Q&A vote is inherited. Parent E2432 remains open; this issue closes only its own scope. No executable packaging/install/release/version bump requested.
Canonical planned location: D:/0_repos/AgentsCommander_iac/.ac/plans/3018-command-fields/plan-v1-command-fields.md. Author applies current shared guidelines and minimal sufficient partitioning. New plan not created or approved yet; no application code authorized until exact consensus/cold gate. User standing authorization covers execution within this scope after consensus without another approval question.
mblua commentedon Oct 15, 2026
Revised technical scope/score — latest user amendment
Authoritative requirements: room-shared/i3018-command-fields/user-amendment-retain-legacy.md. The user explicitly withdrew deletion: retain historical keys/values for version hopping; prefer new when it has content; otherwise legacy fallback; all updates only to new. No read-side cleanup writes, no modification of protected sources.
Prior raw74/final34 (two fields + physical cleanup interpretation); revised raw72/final33. Formula round((72-10)/190*99)+1=33. Ceremony excluded unchanged: issue/branch/push/PR/CI-wait/reviews/delegation/messages/changelog/versioning/landing/cleanup.
Full still applies for cross-cutting schema/persistence, State14 architect authorship and Verification10 proof review. Original five participants unchanged: Architect, Rust, UI, RustGrinch, ArchitectGrinch. No previous Q&A/planning vote carries to a new digest.
Round1 ended NEEDS_ANOTHER_ROUND with no candidate or approvals. Its sole ownership blocker arose from Lead's physical-read-cleanup interpretation, which the user has now explicitly removed. Next round reuses confirmed evidence, produces the first complete v1 under the amended scope, and records current exact consensus normally. Shared guideline must reflect retained legacy fields; the old deletion draft is superseded and was never published.
mblua commentedon Oct 15, 2026
I3018 — execution invalidates v3 readiness; round5 required
UTC 2026-10-15T15:16:00Z. Same authorized task, not a new feature. Root plan-v3-command-fields.md SHA256 4A9F204327AC4CBE9DDA5C8C5D4F57345E2077A3D525B2024CC940083C465F57; P01 p01-v3-tolerant-reader.md SHA256 1456A7EA7046DB892EB0FB51003817F08E452D3FF5863DE2E865A56C2B7C87AD. Immutable bytes and prior votes retained. Affected implementation/rework is stopped; READY cannot authorize contradictory behavior.
Round4 historical verdicts: architect, Rust, UI, RustGrinch, ArchitectGrinch all PLAN_APPROVED exact v3 set (round4-v3-consensus.md). No new vote is fabricated. Execution uncovered a missing decision, so historical approval does not authorize an amended contract. Round5 must obtain the same five explicit votes on its exact set.
P01 PR3023 OPEN on refactor/3019-tolerant-reader, HEAD 368efee, clean. CI run38746457234 attempts1 and2 repeat exactly 21 failed tests/7 files/9 errors. The single unchanged scope-guard rerun is exhausted; no third retry. UI-candidate-r3.md is a blocker report, not code: no edits/tests/commit/push.
Blocker: unchanged settingsStore test supplies agents containing only id/order, expects successful loading. Frozen P01 requires both command spellings absent to reject and has an explicit negative fixture. No projection/config discriminator exists in the specification. Lead will not infer one or alter consumer fixtures. Other proven regressions include missing top-level collections and legacy identity; ResourceMonitor/Sidebar timing causes remain hypotheses. Source references and the distinct seven groups are in execution/P01/UI-candidate-r3.md. The focused local inventory omitted these suites; architect must reconcile verification with the actual full-CI coverage.
Next candidate must decide the minimum complete compatible reader contract, verify it against source, preserve requested new-content fallback/strict real values/source ownership/legacy retention and parser/hash rules, and specify justified coverage and serial Shipper execution. If a real explicit exclusion needs an exception, return the concrete reviewable exception before affected code. No implementation, consumer fixture bypass, generic harness, dependency/workflow change, packaging, or hash-input redesign is authorized by this report. New immutable versions only; reuse unaffected phases when justified. Existing children/branches/PR remain, no duplicates. Revised P01 must explain safe continuation from the existing branch/head instead of recreating it.
Progreso de consenso desde la ronda anterior: NO — five prior approvals remain historical, none increased; new execution blocker reopens the reader contract and verification adequacy. Earlier W/policy/command-owner blockers remain resolved. This is not a new five-party rejection round.
Remaining-delta technical re-score
Previous complete-task score raw72/final33. Remaining P01 repair delta below is scored independently; not an estimate of the whole remaining epic. Ceremony excluded: issues/branches/PRs, messages, review rounds, CI waiting, merges and cleanup.
Raw87. Final round((87-10)/190*99)+1=41. Full remains required for serialized cross-cutting contract. State12 requires architect; Verification10 requires Grinch proof review; Concurrency10 also requires architect. Same original five participants remain mandatory. Source/testing/review ownership unchanged.
mblua commentedon Oct 15, 2026
I3018 — remaining P01 delta after approved three-file exception
Prior complete-task score raw72/final33. Prior unresolved-contract P01 delta raw87/final41. Current remaining P01 delta raw74/final34: six known paths and a concrete approved lifetime/test correction replace the earlier ambiguous discriminator and uncertain repair scope. Unique dynamic scheduling causality remains unproved; no claim of cause certainty or test PASS. Source-backed lifetime and test completion defects now define the proposed correction, whose result still requires discriminating proof.
Raw74; final round((74-10)/190*99)+1=34. Full remains for serialized/cross-cutting design. State12 and Concurrency12 require architect; Verification12 requires independent proof review. Same original five participants (architect, Rust, UI, RustGrinch, ArchitectGrinch). No gates removed due lower numeric score. Excluded as ceremony: issue/branch/PR creation, delegation/messages, review rounds, CI waiting, merges/cleanup, handoffs and elapsed time. This score is not a whole-epic estimate or an assessment of agents.
Specific user approval recorded in user-approval-three-file-exception.md, exact proposal SHA EA17BE48971F1376DF9CF6A31AB11B0CC48849C01E22721BD4B3CCFEAE06B48C. Existing source/branch/child/PR preserved. Re-score precedes cold round7 authoring and exact-set recertification; no source mutation authorized merely by this score.
mblua commentedon Oct 15, 2026
P01 v4 execution blocker — public type boundary not specified
Concrete UI-candidate-r4-blocker.md received/read; no candidate, mutation, commit, check or publication. Source clean HEAD368efee27d55f6da97faae233fc2d0b8dc6a7fc7, unchanged branch/BASE/PR3023. Lead read exact current decoder output declarations and wire types, confirming the reported complete output versus allowed partial input mismatch. This is source inspection, not a compiler failure or test result.
Root v4 SHA1A607BF15EEF9DF6507A8BB2880F2A253D48C69199795044921F2BAC0B55EAFA/P01C5067D329CD0277373FCEC0B1CBC81AF6D2BDD82D0CB0E99EA9B4CA02DA3F929 had all5exact approvals, historical and not fabricated rejections. Implementation revealed an unspecified public result typing decision. Affected readiness invalidated externally; immutable bytes/approved-identities-v4/runtime mapping retained until exact replacement consensus. No technical answer authored by Lead.
Accepted runtime projections {id,order}, empty profile object and absent settings collections cannot all be complete AgentConfig/ProfileCellConfig/SettingsSnapshot values. P01 explicitly retains internal models and consumers while accepting those inputs; partial input types alone do not define a truthful complete public return boundary. The diagnostic used output assertions that were not a shipping design. Architect must define an explicit reviewed type boundary under the actual production response contract and test projection contract, without inventing defaults, rejecting required partial fixtures, globally widening consumers, blanket unchecked output assertions or adding unnecessary general validation. Assess actual generic invoke/backend contracts and distinguish an existing trusted IPC boundary from an unsupported assertion; Lead chooses neither option nor an extra safety requirement.
User-approved six-file scope and lifetime/Sidebar decisions unchanged. No further user permission required merely to resolve this missing design detail within approved scope. Actual outside-file/contract exclusions still require a concrete exception, not a generic request. Final implementation/tests remain pending; no extra diagnostics. New immutable root/affected phase only if architecture needs revision, same original five exact-set review and cold gates. Preserve unaffected phase bytes/digests where valid; no issue/branch/PR duplication.
Progreso de consenso desde la ronda anterior: NO — all5prior approvals remain historical, no new replacement candidate/votes; a new type-boundary blocker reopens an undecided implementation contract. Earlier projection behavior, W/retention/ownership/lifetime exception remain resolved. User-visible blocker and exact conclusion published before next cold gate.
Remaining-delta re-score before recertification
Original whole-task raw72/final33; prior known six-file delta raw74/final34. Current raw79/final37 differs ONLY solution ambiguity4->9 because a type-boundary choice remains unresolved. Scope, known source defects, proof, compatibility and concurrency unchanged; no ceremony/elapsed-time inflation.
Raw79; final round((79-10)/190*99)+1=37. Full and State12/Concurrency12/Verification12 gates retained, original5participants. Excluded: messaging/delegation, issue/branch/PR operations, review rounds, waiting, CI duration, merge/cleanup/handoffs. No new scope or score-gate waiver.
mblua commentedon Oct 15, 2026
Remaining delta score v6 — bounded lifetime repair after caller attribution
Prior remaining delta:37/100, raw79 (v5 public type boundary); original full field rename34/raw74. Re-score only necessary remaining work: picker lifetime correction/tests plus integrating landed main project repair and validating both actual callers. Existing field projection code/proof is retained, not reimplemented. User-authorized outcome still both failures; landed reuse reduces new work.
Raw62/200. Final=round((62-10)/190*99)+1=28/100. Reduction37->28 reflects resolved diagnosis/typeboundary and reuse of project repair, not reduced verification. Ceremony excluded: issues/branches/PR/push/merge, planning/review rounds, messaging, context resets, CI waiting, version/release/cleanup. Full existing partitioned contract retained; concurrency12 requires architect author, verification12 meaningful proof review. Initialsamefiveparticipants/root+P01immutablev6/exactsetapprovals required; unchanged P02/P03v4/P04v2 only if author confirms compatibility. No new implementation until consensus/coldgate.
mblua commentedon Oct 16, 2026
Delivered the complete approved v8 set: #3019/#3023, #3020/#3041, #3021/#3043 and #3022/#3055. All children are CLOSED and all four phase merges are ancestors of final main f24f55d.
P04 published/tested head5103724de545591f90fd64e12bbdc80cbeb962fd passed all26 checks/statuses, all14 required contexts/app IDs, and regression38971365748. Final documents equal reviewed blobs; the constructor-only incoming delta was classified unrelated to the documented behavior and recorded on PR3055 before merging. Combined source evidence from the delivered Rust/frontend phases remains applicable; P04 changed only its two documents. No package was requested or built.
The separate shared field-replacement policy preserves the prior8756 bytes and appends only the approved section, final10858 bytes/SHA256 91ea75420ad29c0b0407383bf3d0f5d2b032e8fedc6eb4a97ee3e83be1dce29c. Independent domain/policy/focal reviews passed. Room18 completed clean-main/branch cleanup and final dry/real purge. The user-resolved inherited whitespace diagnostic is preserved honestly, without changing the release document.
Lead verification: .ac/project-shared/parallel-room18-i3022/room19-final-delivery-verification.json and P04-delivered.md. Original frozen specifications, approved identities and execution bases are unchanged. Closing #3018; #2432/#3047 remain open for the separately approved per-profile id_hash correction.