Skip to content

feat(project): expose Project file difference count (refs #3060) - #3066

Merged
mblua merged 14 commits into
mainfrom
feat/3060-project-file-difference-read
Oct 19, 2026
Merged

mblua merged 14 commits into
mainfrom
feat/3060-project-file-difference-read

Conversation

@mblua

@mblua mblua commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Closes #3060
Parent: #3057. The header indicator follows in #3061 after this backend phase merges.

Adds get_project_file_difference(path) through Tauri and the browser transport. It counts distinct paths in the Project root repository against a pinned cached origin/main, including non-ignored untracked files. Repository identity validation, NUL-delimited Git paths and one five-second budget return {count:null} when the read is unavailable.

Exactly four backend files differ from the integrated upstream target. The existing Project header, filter, inherited menu test, workflows, manifests and lockfiles retain upstream bytes. The spawn-call inventory covers the new Git reads. No fetch, synchronization or settings writes are performed by the command.

Validation on eaacb59622835d814f05b7909aed1404b325abe2, integrating f08b2734dbe60a40f3341f7d27b727d8e10ecc0e:

  • Fresh local Windows tests: inventory 1, counter 13, browser transport 45 (all expected identities), shell filter 3, and layering 1/5/3: 71 passed, zero failures or ignored tests.
  • Formatting, full workspace/all-targets Clippy and the existing cognitive-complexity gate passed with Rust/Cargo 1.98.1.
  • Fresh structural checks passed: 219 modules, 1,211 module pairs, the full existing 89-member cyclic component unchanged, no new module pairs, and the arc record current.
  • Independent source, architecture and UI preservation reviews passed. Full frontend coverage of the inherited menu remains part of the new-head CI.

Specification: P01-v15-project-difference-read.md, SHA256 E13171D3DEBE4396C2B01D3EEC6A40DF66829B3011E23E67693129BDDC814507, under the approved five-party plan-v16 / epic-v15 / P01-v15 / retained P02-v3 set. Concrete local reports, command receipts and hashes are in room04 shared project-status-implementation/p01/landing-f08b2734/.

The ci:full label remains enabled. All required and triggered CI checks must pass on this exact published head before merge. Earlier-head CI is historical evidence only.

mblua added 2 commits October 17, 2026 10:47
Adds get_project_file_difference (Tauri + WebSocket BrowserProject route):
a bounded, read-only Git count of distinct Project-root paths differing from
cached origin/main, untracked non-ignored included; null when unknown.
@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

CI run 39042932314, attempts 1 and 2, reproduced the same Clippy needless_borrow failure in the newly added counter test at ac_discovery.rs:8379. Both attempts validated head 4e0fe4360ffd851e2311ecabd55a10f66c779837; no further retry of that unchanged head is planned.

origin/main advanced to 6bff4a5887e5848fa23e0161b8a1dbc55a275708 through #3065. Its three incoming commits change only src-tauri/src/pty/watchers/mod.rs (Working-indicator recognition and tests), with no file overlap with this PR. Since this head has no successful CI result, the full update path applies: integrate main, make the minimal test-only lint correction, review the integrated diff and refresh affected validation before publishing a new head. No production behavior, assertions, dependencies or filter changes are proposed.

The prior operational plan limited source edits and the owner stopped before making changes. Its narrow continuation contract is being updated through the same reviewers; product scope and the retained frontend phase remain unchanged. The branch is still on the original published head while this gate is resolved.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

Both attempts of CI run 39047197115 on 1c12989305b71433a5d19d889255614c893493a8 failed in spawn_search_path_inventory: the new feature adds one decorated production Git constructor and one test-only fixture constructor, while the inventory still expects 32 sites. Windows/Linux Clippy passed. No further retry of that unchanged head is planned.

The user explicitly approved the reviewed minimal correction: only the ac_discovery.rs inventory row in src-tauri/tests/spawn_search_path_inventory.rs, total/covered/TestOnly 32/1/31 → 34/2/32. All guard logic, categories and other rows remain unchanged. This fourth-file exception is being incorporated in the next immutable plan set before implementation. Current checkout/remote/PR remain on the same clean feature head. Next candidate must integrate current main, pass applicable local validation and all required CI on its exact head. Option B and the existing filter remain unchanged; P02 has not started. No merge has occurred.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

Stale-base triage: documentation-only delta

Feature/CI head remains 271c742e84cad65878abf87d36d30e17dbd9b0af on the principal checkout branch feat/3060-project-file-difference-read, with a clean tree. No checkout/head change or CI query was made in response to the behind-main notice.

Freshly fetched main is 1a11c4c16aaed89a8e688f357c2e8f7fe854f521. Relative to integrated target 85ed7f5bcc1d12de4e32f06244e8178f6654b868, the two incoming commits are 3949fbdb and merge 1a11c4c1 (PR #3079). The complete diff changes only CHANGELOG.md, adding17 lines of release notes. No application source, feature file, import/dependent, configuration, build input, lockfile or workflow changes.

Under the documentation-only stale-base rule, this delta requires no feature-branch update or fresh CI run. Keep the selected feature head unchanged while its existing CI completes. If every required/dispatched check passes for that exact head, reuse that result and proceed through the normal PR landing path; do not rerun CI merely for this changelog delta. Re-triage any additional main delta at landing. This record does not claim CI success or authorize merging pending/red checks.

P01-v9 and its exact five-party approval remain unchanged; the root-project count and current filter contract are preserved. No new plan, source edit, test run, build, GUI action or merge was performed for this notice.

@mblua

mblua commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

CI run 39060514087, attempt1 on 271c742e84cad65878abf87d36d30e17dbd9b0af, finished red. Windows regression and both Clippy checks passed. Three full-tier jobs failed:

  • Linux screenshot guard:33 tests pass, workflow expects31.
  • macOS screenshot guard:32 tests pass, workflow expects30.
  • Frontend context-menu test at ProjectPanel.context-menu.test.tsx:2054: rAF callbacks expected1, received2 (clamp, tick).

Those workflow/screenshot/UI sources are byte-identical to integrated main85ed7f5b; the feature-only diff remains the four reviewed P01 paths. This comparison is not a baseline execution or a blanket conclusion about causality. Full logs and source evidence are preserved.

One bounded rerun of only the failed jobs was requested on the same SHA/conditions, without source or environment changes. The principal checkout, remote and PR remain aligned. Await its native completion notice; do not merge pending/red checks. No separate workflow/UI repair has been delegated or authorized by this rerun. The current filter and P02 remain unchanged.

@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

Full CI passed on exact PR/local/remote head9c00028cb46813a9fd3b7ce9cccdd4201be0b9ee: https://github.com/mblua/AgentsCommander/actions/runs/39074273675,16/16 jobs SUCCESS. Raw logs verify screenshot Linux33/macOS32,0failed/ignored, and frontend SUCCESS. The earlier same-head automatic run was superseded by the configured concurrency group when ci:full started this successful full run; no failed check is waived.

Fresh landing fetch found main29fad1be70cc730407ebdd41c9690d1ccb8a5cf7, advanced from integratedfe59d4dc. Delta includes release0.45.1 version/lock/build inputs and overlapping workflow counts33/32 already fixed upstream. This requires the full integration path, not docs-only green-result reuse. Architect is reconciling the exact current P01-v11 contract (six own diff paths) with upstream absorption of that workflow repair, before affected execution. No merge, branch update, new CI or new product scope yet; retain current green head and filter.

mblua added 6 commits October 17, 2026 20:36
…0-project-file-difference-read

# Conflicts:
#	.github/workflows/pr-regression-gates.yml
…0-project-file-difference-read

# Conflicts:
#	src/sidebar/components/ProjectPanel.context-menu.test.tsx
@sonarqubecloud

Copy link
Copy Markdown

@mblua

mblua commented Oct 19, 2026

Copy link
Copy Markdown
Owner Author

Exact-head CI is green for eaacb59622835d814f05b7909aed1404b325abe2: full regression run, all 16 jobs successful. All 24 PR status entries are successful; the current 14 required contexts are present and successful. Fresh local checks and independent reviews also passed.

Step 9.5 incoming-base assessment: f08b2734 → acc62cc34ab85145e217e01c64a5241cdcd6380d (PR #3115) changes these ten paths:

  • src/sidebar/components/ProjectPanel.tsx
  • src/sidebar/components/ProjectPanel.working-tint.test.tsx
  • src/sidebar/components/RoomGroupRail.tsx
  • src/sidebar/components/room-session.test.ts
  • src/sidebar/components/room-session.ts
  • src/sidebar/stores/team-idle-watcher.test.ts
  • src/sidebar/stores/team-idle-watcher.ts
  • src/sidebar/watchdog/non-stop-watchdog-client.test.ts
  • src/sidebar/watchdog/non-stop-watchdog-client.ts
  • src/sidebar/watchdog/rail-watchdog-parity.test.tsx

Source review classifies this as unrelated to the additive backend counter: room-activity UI wiring, no new backend call or counter consumer, and no changes to Rust, shared IPC, scripts, workflows, configuration, manifests or locks. P01 adds no frontend change that could interact with the new wiring. The predicted native merge is conflict-free and differs from current main only in the four approved backend files; it retains all upstream UI and the existing filter.

The architect and independent reviewer approve landing the current green head under the existing unrelated-delta exception. No branch refresh or repeat CI is required for this delta. Evidence: room04 shared project-status-implementation/p01/landing-acc62cc3/{architect-delta-triage.md,grinch-delta-triage.md,required-check-verification.json}. This assessment does not claim the combined merge tree was executed. The UI phase remains pending after backend delivery.

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.

P01 #3057: expose bounded project file difference count

1 participant