Repository navigation
P01 #3057: expose bounded project file difference count #3060
Description
Purpose
Backend phase P01 of #3057. Provide the read-only count needed by the user-selected subtle project-header pill. The target is the Project's own root repository, compared with cached origin/main, including non-ignored untracked files. No Git mutation or automatic fetch in the product command.
Reviewed specification
Canonical phase: .ac/plans/3057-project-file-difference-count/P01-v9-project-difference-read.md.
Phase SHA256: 75D3F56E8B43CADDAC9E168ECDC7FAF9C16561C923D21794BCA944A05450D56B.
Parent plan: epic-v9.md, SHA256 8CD4987F78F53C4220E6AD0D78CD2B9A9CC9CD9F76763BB76DFF26F961031FEB in that directory. Exact author plus original Rust/UI/Grinch/architecture-Grinch consensus and explicit user exception are recorded in approval-receipt-round7.md; prior immutable versions are preserved as history.
Owner: ac-dev-rust-v5. Class: design-bearing. Dependencies: none. Compilation/test execution: ac-shipper-v5, coordinated by tech-lead. No final app build requested.
Scope
Only src-tauri/src/commands/ac_discovery.rs, src-tauri/src/lib.rs, src-tauri/src/web/commands.rs, and src-tauri/tests/spawn_search_path_inventory.rs. The first three contain the already implemented shared bounded read and additive {count:number|null} contract through Tauri and browser transport. Preserve discovery DTOs, replica Git watchers, persistence, dependencies and the current filter.
Current authorized continuation: only the existing ac_discovery inventory row changes total/covered/TestOnly 32/1/31 → 34/2/32, recognizing one production command with the existing PATH decorator and one cfg(test) fixture command. Preserve every assertion, scanner rule, category and other row. User explicitly approved this fourth-file exception after both same-head CI attempts reproduced the mismatch. Integrate current main on the existing branch and preserve all upstream changes before candidate validation.
Acceptance and verification
Distinct path count against the fixed cached reference, NUL-safe filenames, staged/unstaged/committed/deleted/untracked cases, ignored files excluded, root identity verified. Clean returns zero; unavailable/invalid/timeout returns null. Five-second backend budget and process cleanup. Real Git fixtures and sensitive positive control; timeout test uses a short real duration without Tokio test-util. Exact candidate checks and structural evidence follow the canonical phase: existing inventory guard must execute1PASS/0FAIL/0ignored; integrated fmt, CI-equivalent Clippy/cognitive gate, structural guards and SCC/arc evidence retain their owners. Historical13/44/3 results can be reused only with provenance and reviewed nonaffection. Require all applicable checks green on the exact PR head before merge. This phase's PR closes only this child; #3057 remains open for P02, which starts after P01 merge/ancestry.
Activity
mblua commentedon Oct 17, 2026
I3060 operational validation delta: technical scoring
Original E3057 score: 22/100 (raw51), Full due Rust/UI ownership and additive IPC contract. Original verification8 positive-control gate remains; P02 and product scope unchanged.
User authorized investigation/minimal correction of two repeated web failures. Static evidence suggests TEMP under an agent replica triggers target creation gating before intended shell assertions. Architect proposes child-process TEMP/TMP/TMPDIR and equivalent GIT_CEILING_DIRECTORIES in authorized room-shared without a replica ancestor; no product changes. Frozen P01-v4 must explicitly allow this execution environment before execution.
Remaining delta score:
Raw31; round((31-10)/190*99)+1 = 12/100. Ceremony excluded: issue/PR/CI waiting, messaging, consensus, purges and plan bookkeeping. This delta does not remove the existing Full partition criteria. Continue Full with same participants; only P01 execution contract and shared manifest/epic require new certification, P02 retains exact bytes/digest/votes. Environment risk: revised TEMP may disprove the hypothesis; any failure stops the attempt rather than altering tests or production gates.
mblua commentedon Oct 17, 2026
The two originally failing web cases now pass at
4e0fe4360ffd851e2311ecabd55a10f66c779837with the authorized temporary directory outside agent-replica ancestry. Production code and test assertions are unchanged. This supports the environmental hypothesis; no baseline run or exact original return site is claimed.The authorized substring filter also selected one existing native test: actual result 3 passed, 0 failed, 0 ignored, exit 0. The runner stopped because the frozen validation contract expected exactly two. That expectation is being corrected through the existing review process; successful tests will be reused.
The full
web::commandssuite remains pending. Counter tests (13), layering guards (9), format and structural evidence remain valid with their recorded provenance. No push, PR, merge or frontend phase has started. The selected option B and current filter remain unchanged.mblua commentedon Oct 17, 2026
P01 is published in PR #3066 at
4e0fe4360ffd851e2311ecabd55a10f66c779837and awaits CI. Final independent local review: PASS.Local validation: counter 13 passed; full web suite 44 passed; layering guards 1 + 5 + 3 passed; formatting and structural checks passed with recorded provenance. Both originally failing web cases pass under the authorized temporary-directory environment with their assertions unchanged. Cargo metadata confirmed compatible repo-local target and external intermediate build directories. No product repair was required for these failures.
The exact P01-v7 specification is SHA256
37EEF787C081728EDD0A7FB4C80F3791EAF28073C05ADDB8E8BB3EECE6067C53, approved by the architect, owning devs and both independent plan reviewers. CI started on the matching active branch/head; merge is pending its native completion notification. P02 (#3061) remains pending P01 merge. The current filter is preserved.mblua commentedon Oct 17, 2026
I3060 remaining lint/integration delta: rescore
Original E3057:22/100, raw51; Full remains mandatory for Rust/UI ownership and additive IPC. The existing feature verification8 proof gate stays applicable. Previous operational TEMP delta12/100 is complete; its 44-test web suite passed. CI then exposed a needless_borrow in one newly added test, reproduced once on unchanged HEAD in Windows and Linux. Main advanced three commits in one upstream watchers file.
Raw17; round((17-10)/190*99)+1 =5/100. Excluded ceremony: issue/PR bookkeeping, messaging, reviews, plan rounds, purges, CI waiting and merges as process. The upstream source effect is included only in integration/verification, not inflated by ceremony. Full criteria of the still-active epic do not disappear with this small remaining delta.
P01-v7 explicitly limited the prior operational continuation to no source edits, so owner correctly stopped before mutation. A new immutable candidate and the same five participants' exact consensus must establish the narrow Step9 lint correction plus Step9.5 main integration before source changes. This is routine completion of the already-authorized counter feature: no new behavior, fixture/assertion semantics, public contract, dependency, scope, issue or phase. Standing authorization applies once exact consensus exists; do not ask the user again for the original implementation scope. Main integration is also explicitly authorized by the user's existing Step9.5 rule.
Both CI attempts and all prior local receipts are retained. Affected evidence must be refreshed on the integrated candidate; unaffected checks need not be rerun merely for ceremony. No additional rerun of the old failing HEAD is authorized.
mblua commentedon Oct 17, 2026
Published integrated head
1c12989305b71433a5d19d889255614c893493a8to PR #3066. It contains the test-only Clippy correction (e47ddaa6) and current main (6bff4a58), merged without conflicts. The watcher file matches upstream and the feature diff remains in its three authorized backend files.Fresh local validation passed on this head: Windows workspace/all-target Clippy and cognitive gate, affected test (1), layering guards (1 + 5 + 3), formatting, POST/arc/cycle checks and independent final local review. Structural comparison found identical complete cyclic-component sets and no new module pairs. Prior counter13/web44/filter3 receipts retain their original head and provenance; their reuse was explicitly reviewed.
The reviewed P01-v8 contract is SHA256
12FA3B39C302EE7A46CA036A6A983508954DA7A0BB61F5DC03745D4B4320CB11. CI started on the matching new published head; merge is pending the native completion notice. #3061 remains pending P01 merge. Option B and the existing filter are preserved.mblua commentedon Oct 17, 2026
I3060 remaining technical cost: authorized inventory reconciliation
Original feature score retained: 22/100, raw51; Full partition and original verification8 proof remain applicable to the whole feature. This table scores only the remaining inventory reconciliation plus current-main integration, not completed implementation or ceremony.
Raw = 19. Final = round((19-10)/190*99)+1 = 6/100.
Excluded ceremony: issue/PR bookkeeping, branch naming/push, waiting for CI, consensus rounds, messages, approval recording, merge operation and cleanup. The guard's technical accounting is included in domain/tooling above.
Path: retain existing Full partitioned feature contract (architect author; original Rust/UI owners and both Grinches explicitly agree exact immutable set, with unchanged P02 retained). A low remaining score cannot bypass that current contract or the authorized fourth-file reconciliation. Reuse valid historical proofs with provenance/nonaffection; refresh only candidate-integrated contractual checks and the actually failing guard.
mblua commentedon Oct 17, 2026
CI repair continuation: authorized scope and remaining technical score
The user authorized the architect-confirmed test/guard repair and explicitly authorized the temporary epoch-only sensitivity probe, restored byte-for-byte and never published. Approach v3 SHA256 A63C576C009418D5FF3855868DC40383AA261D5C83786D71C74BCFCA2D6ADE3C has UI feasibility and independent architecture approval; it is not yet a delivery-plan consensus. Permanent repairs: workflow screenshot counts Linux33/macOS32, preserving hard counts/sentinels, and the existing stale-menu callback test using a frozen pre-close batch. Temporary validation-only path: ProjectPanel.tsx. Preserve production behavior and current Project filter. Same child3060, branch and PR3066; P02 remains pending P01 landing.
Original feature: raw51, final22/100. Remaining repair: raw47, final20/100, using round((47-10)/190*99)+1.
Excluded ceremony: issues/branch/PR, CI waiting, messaging/review rounds, purge gates, version/changelog and landing mechanics. Preserve original Full partition contract and same five participants for revised exact plan set; verification veto requires Grinch review of actual sensitivity evidence. No extra phase or issue is needed. New immutable plan consensus and cold execution gates precede edits. Current principal/PR head271c742e84cad65878abf87d36d30e17dbd9b0af; latest fetched mainfe59d4dcce5b95ab72e931168a2bc051c326b65d is not yet integrated. No further old-head CI retry.
fix: reconcile screenshot guards and stale menu callback proof (#3060)
mblua commentedon Oct 17, 2026
Published repaired P01 candidate 9c00028 to existing PR #3066. Local selected branch, remote ref and PR head match. Current mainfe59d4dc is integrated; worktree/index/untracked clean.
Authorized test/guard-only repair: screenshot expectations Linux33/macOS32 retain all hard guards; existing stale-menu test uses the frozen old callback batch. The epoch-only probe failed on retained position equality (210px expected,8px received), then production bytes were restored exactly. Probe never committed. Six own modified paths; production UI/filter unchanged.
Fresh local PASS: inventory1, counter13, web44, shell-filter3, layering1/5/3, fmt, pinned Windows Clippy/cognitive gate; menu focused1 and full-file108. Independent UI, code/structure and final raw-log reviews pass. SCC sets unchanged,219 modules/1211 pairs,no new pairs. P01-v11 SHA256041BC91DACA46890CAE9B79768B12A734426862DE3BA143728311627510369CB has five exact votes; canonical receipt approval-receipt-round8.md.
Full CI requested by ci:full label after exact-head verification. Remote results pending; no merge until every required/dispatched check is green on this head. P02/#3061 remains pending P01 merge. No final build or GUI test.
mblua commentedon Oct 17, 2026
Landing continuation after successful full CI
Full CI39074273675 passed16/16 on9c00028cb46813a9fd3b7ce9cccdd4201be0b9ee (actual screenshot Linux33/macOS32 and frontend green). Fresh main29fad1be adds version-only release metadata/locks and the same screenshot expectations. Architect source comparison proves executable workflow content unchanged between current head and target; only comments differ. No dependency resolution/toolchain change.
P01-v11 requires exactly six own diff paths. Upstream absorption now makes five correct; retaining cosmetic workflow changes merely to manufacture six is excluded. Architect requires a narrow immutable plan revision/consensus before affected integration; no new phase/issue/product change or probe. Round8 remains historically approved; Round9 has no candidate yet, no external votes transferred. Architect NEEDS_ANOTHER_ROUND for current delivery fit. Progreso de consenso desde la ronda anterior: NO: new target introduced a new exact-file-count contract gap; no preceding blocker was eliminated and current candidate approvals have not increased.
Original feature raw51/final22; prior repair raw47/final20; remaining integration raw19/final6 (round((19-10)/190*99)+1).
Excluded ceremony: issue/branch/PR/status/plan votes/messages/purges/CI waiting/merge administration. Original Full partition contract and same5participants retained, including Architecture Grinch; previous sensitivity proof remains reviewed historical evidence, never relabeled as new-head execution. Minimum target is exactly five own paths and upstream workflow/version/locks preserved. Local integration precedes result checks; no circular gate. New exact-head CI after qualified integrated verification, no rerun oldgreen9c.
mblua commentedon Oct 18, 2026
P01 published in PR #3066 at
ba1f13384574237207ad2dd502bf13563c98cc7c, integrating current maine86896d9ea9cf0937810ba6106fa373140b9c45c.Local verification and independent code/architecture/UI reviews passed. Fresh on this candidate: fmt, layering1/5/3, Windows Clippy+cognitive and POST/arcs/cycles (219modules/1211pairs, full89-member SCC unchanged, no new module pairs). Qualified reuse retains original execution provenance: inventory1 from9c00028; counter13/browser44/filter3 and UI focused1/full108 from13c3af80. Complete source/transitive/environment inputs and historical epoch-only sensitivity/restoration were checked.
Exactly five own modified paths remain; upstream, production ProjectPanel and its existing filter are preserved. Canonical frozen P01-v13 SHA256
45D848EAC21FF912B7CFF3A65F0854202212D1C32750E2284FBC05DE26D0E101; exact five-party consensus retained.The full CI started automatically on ba1f133. Local checkout, published branch and PR head match that exact commit. CI is pending; no delivery or merge claimed. #3061 remains pending until this phase lands.
mblua commentedon Oct 18, 2026
PR #3066 now publishes
ac33ac5425d76479630c54d07da0facffdf10997, integrating current maina4c18bfa66aad051627378ae885798af405ed59e. Exact five own paths and existing Project filter are preserved.Local verification passed: fresh fmt/layering1/5/3 and new-head POST/arcs/cycles; source, architecture, UI and final raw-log reviews approved this candidate. Qualified reuse preserves the original inventory/counter/browser/filter/WindowsClippy/cognitive/menu proof origins, with source/transitive/environment checks. No probe, install or product changes were added during this integration.
The full CI started automatically on ac33ac5. Local checkout, published branch and PR head match. The configured frontend job must verify TypeScript and the four updated transport fixture cases on this new head, alongside all other configured/required checks. Previous ba1f133 CI16/16 is historical. CI and merge remain pending; #3061 starts only after P01 lands.
mblua commentedon Oct 18, 2026
I3060 remaining verification delta — Round10 intake and score
Original feature raw51/final22; prior continuation raw19/final6; current remaining delta raw20/final6. Formula: round((20-10)/190*99)+1=6.
mblua commentedon Oct 18, 2026
CI attempt2 — disposition and separate investigation proposal
CI run39086356203 attempt2 / PR3066 / exact ac33ac5. Selected branch feat/3060-project-file-difference-read unchanged and clean.
15/16 jobs succeeded. Windows rust-regression job117563259321 failed at cargo test. The two attempt1 AC_READY failures both passed on attempt2, so they were not reproduced; no transient cause is proven. A different executable pty_powershell_managed_native exited1 abnormally after printing four passed tests and without identifying a failed assertion/test. This new failure is not the previous timeout.
Preserved original/raw results: ci-39086356203-attempt1/result.json and failed-jobs.log; ci-39086356203-attempt2/result.json, failed-jobs.log and comparison-and-disposition.json. All paths relative to p01/round9-integrated-a4c18bfa/. Attempt1 frontend4101/typecheck and 8 fixture cases passed; attempt2 frontend job also succeeded. No third attempt authorized/executed. No code or environment/runner/threshold/workflow edits.
Scope evidence: last greenba1f -> ac33 differs only in src/shared/ipc.transport.test.ts and src/shared/types.ts (+30/-3); Rust/PTY/Cargo/workflow inputs unchanged. This does not prove the underlying cause or eliminate all execution-environment effects. Relationship to counter is not established.
Proposal awaiting user scope authorization: a separate bounded read-only investigation of the Windows pty_powershell_managed_native abnormal exit, using existing CI attempt1/2 logs and current test/launch/cleanup source at this SHA. Goal: identify the actual failure point or state the missing evidence, assess relation to I3060, and return architect-reviewed next approach. No code repair, third CI attempt, new issue/branch, new test/harness/instrumentation, baseline/threshold change or installation is included. Any such next action needs its concrete scope/authority before execution.
Counter delivery remains blocked; Round10 exact-set5/5/renewed7.5 are preserved, not new-head test evidence. P02/filer remains unchanged and unstarted. git-ci-scope-guard requires separating unresolved unrelated/uncertain CI work from this issue; no admin merge while red.
mblua commentedon Oct 18, 2026
P01 delivery amendment: remaining technical score
Original feature: raw51, score22/100; source room-shared/project-status-implementation/scoring-and-decision-v1.md. Remaining delta is absorption of an upstream duplicate menu-test repair while preserving the already implemented counter, plus required source integration. Historical CI fault remains unexplained; no PTY repair is included.
Raw21. Final=round((21-10)/190*99)+1=7/100. Ceremony excluded: issues, branches, PR, waiting CI, messages, consensus/reviews, merge and cleanup. Full two-phase contract and original five participants retained because this amends their existing cross-contract feature plan; score does not remove existing Full gates. No new product, selector, probe, baseline, dependency or phase. Canonical recertification applies only to necessary delivery-rule change, with P02-v3 unchanged. Candidate/user approval still pending; this score authorizes no source mutation.
Merge pull request #3066 from mblua/feat/3060-project-file-difference…
mblua commentedon Oct 19, 2026
Delivered in PR #3066, merged as
bb635181019040986c4e9d8304b0f7b71f28c729. The issue is closed and the local checkout is clean on synchronizedmain.All 71 local tests, formatting, full Windows Clippy/cognitive checks and independent source/structure/architecture/UI-preservation reviews passed. Full CI passed all 16 jobs on tested head
eaacb596; all required and triggered PR checks succeeded. The subsequent room-activity UI delta was independently classified as unrelated and preserved by the native merge.The root-Project difference-count command is available through Tauri and browser transport. The visible option-B header indicator remains in #3061 under #3057; the existing filter is preserved. No final application build was requested.