Repository navigation
feat(code-index): index authenticated Git submodules - #4801
ScriptedAlchemy wants to merge 25 commits into
Conversation
Keep parent repository source admission unchanged; use one shared walker for exclusion evidence instead of a second filesystem scan. Refs #4593
|
|
Refs #4593 — validation blocker at exact head The repository-gates job failed before Rust execution: https://github.com/ScriptedAlchemy/tracedecay/actions/runs/42433144833/job/128586224987 . The actual failures are:
No source fix, Rust test execution, independent review, branch update, merge or issue closure was completed in this follow-up. This environment has no executable repository checkout or Bazel; direct repository retrieval failed, and no usable remote execution/workflow-dispatch capability was exposed. This is a validation limitation, not evidence that the implementation is correct. #4801 remains diagnostic-only and draft. It does not yet satisfy authenticated submodule admission, pinned child-tree capture, child-aware freshness, or consistent retrieval/graph behavior. Retain Coordination: the dedicated #4593 owner remains responsible for implementation; PR maintenance owns CI assistance without racing its branch. Do not repair unrelated decision-model generated paths by importing forbidden work. #4776 and all Kev/decision-model work remain draft and unmergeable by instruction; #4763 remains read-only. No protections or tests were weakened. |
|
Refs #4593 — exact-head CI repair The PR is still partial: it adds skipped-nested-repository diagnostics and regression source, but NOT authenticated submodule indexing, freshness, or indexed retrieval. HOLD MERGE even if its current-head diagnostics tests pass: keep this same PR open to complete #4593. Being reviewable or passing preliminary tests does not mean the issue's acceptance is met. No complete-implementation, native macOS or independent-review proof exists. Keep |
Limit skipped-repository samples during traversal, honor directory policy before collecting diagnostics, and quote bounded path labels. Propagate source-walk failures instead of returning an empty successful audit. Add behavioral coverage for bounded sampling, policy scope, preserved ecosystem caveats, Unicode/control-character paths, and missing roots. Refs #4593
|
Refs #4593 — published source repair Fixed unbounded skipped-repository collection, diagnostics escaping configured directory exclusions, unquoted/unbounded path labels, and swallowed filesystem-walk failures. Added six behavioral regression cases (one Unix-only filename case); existing initialized-submodule and linked/nested-repository exclusions are preserved. Only Current-head CI: https://github.com/ScriptedAlchemy/tracedecay/actions/runs/42442123433 — queued when inspected. These Rust regressions have NOT executed; author diff review is NOT independent review. The prior successful draft run skipped Rust/Clippy/native jobs, so it is not acceptance evidence for these changes. The existing merge hold remains. This repairs the current audit implementation, not the still-unimplemented optional authenticated submodule indexing feature. Keep the PR draft/open and #4593 open. Continue the integrated admission/capture/freshness/retrieval implementation here rather than opening a duplicate or treating more diagnostic fixes as feature completion. |
|
Refs #4593 — published nonforce, expected-head fast-forward |
Use one source boundary for interactive walks, Git candidate classification, worktree capture (including ignored-file admissions), and freshness. Parent tracked files hidden by a new nested .git marker become tombstones, invalidate clean HEAD-tree reuse, and return when the marker disappears. Reject source paths passing through symlinked directories or lexical escapes. Add real Git classification and filesystem regressions for nested directory, gitdir-file, symlink, path traversal and removal behavior. Refs #4593
|
Refs #4593 — published source repair |
|
Refs #4593 — published exact-head CI repair |
Sample .git marker evidence for tracked and explicitly admitted source ancestors even when Git dirwalk never recurses into tracked-only folders. Test marker creation and removal against a real Git parent index. Refs #4593
Directory metadata changes when the marker is removed, so the original cached roster must not be treated as restored merely by marker absence. Refs #4593
A registered gitlink remains an untrusted nested source boundary even if its child .git marker is absent. Keep live grep and audit in default-deny parity with the parent index; include/glob cannot lift repository trust. Exercise a real registered Git submodule with its marker removed. Refs #4593
|
Refs #4593 — published narrow default-deny source fix Current-head run: https://github.com/ScriptedAlchemy/tracedecay/actions/runs/42466514013 (queued at check). NO Bazel behavioral Rust pass or independent review claim. Do not merge or mark ready. Feature acceptance remains integrated authenticated opt-in, pinned historical child capture, child status/freshness and cross-boundary graph/index/live retrieval, with nonzero Bazel/native validation. Preserve #4800 and protected Kev/release lanes. |
Apply the two exact rustfmt_check_2024 hunks from hosted run 42466514013. No source behavior changes; authenticated submodule indexing remains pending. Refs #4593
|
Refs #4593 — narrow hosted Bazel formatting repair published at Exact-head run 42466514013, repository-gates job 128687191524, failed only HOLD MERGE: this PR remains DRAFT and contains only exclusion/diagnostic/freshness hardening. The requested default-off authenticated submodule inventory, selected historical child-tree capture, dirty child freshness, and graph/indexed/live retrieval parity remain unimplemented. No independent review. #4593 stays open. Please do not merge or change the draft selection to conceal missing behavior, and preserve #4800/#4508, protected #4776 Kev and read-only #4763. |
|
Refs #4593 — new source-review boundary mismatch, regression needed; not a claimed exploit or passing test (reviewed at exact head The default-deny live walker now checks parent stage-0 gitlink roots through Test the concrete scenario with a real parent 160000 gitlink under Current-head hosted workflow 42468887836 has passed repository gates, but Rust native/OS tests and Clippy were skipped for this draft; the Dashboard job remained queued when checked. Do not push a speculative fix that cancels that run. Fix via the one canonical authenticated submodule boundary, not a third independent scanner, and keep DRAFT/HOLD MERGE, |
A parent stage-0 gitlink remains tracked repository source even when its child checkout loses the .git marker. Check every indexed ancestor before an ignored dependency is admitted or revalidated, preserving the existing proof for ordinary ignored sources. Add a real local Git submodule regression that removes the child marker and checks both the admission proof and production source-read refusal. Refs #4593
|
Refs #4593 — published The ignored-dependency gix proof now checks every parent index ancestor for mode-160000 gitlinks, not only the exact candidate path. This closes the omitted-marker admission path discussed in comment 6720823044 for verified ignored dependencies, including the production source read and existing ignored-roster revalidation. Added a real local Git submodule regression source: verified stage-0 gitlink and No Rust regression has executed through Bazel, and there is no independent review. Current-head hosted CI 42482445184 was queued. Previous-head run 42468887836 completed successfully after re-running a Dashboard job blocked by a transient download timeout; draft native Rust/Clippy remained skipped. I independently checked the disposable Git fixture commands locally, but that is not a repository Rust test or acceptance evidence. HOLD MERGE / keep DRAFT / #4593 OPEN. The default-off authenticated submodule inventory, selected child-commit historical capture, child-aware freshness, and indexed/graph/live retrieval parity remain undone. Protected Kev/release PRs, #4800/#4508, and CI protections were not changed. |
Refs #4593. Full authenticated child indexing still incomplete.
|
Refs #4593 — guarded source repair on existing DRAFT #4801, HOLD MERGE. Commit One file changed: The integrated canonical default-off authenticated submodule opt-in, shared inventory across child candidate capture/freshness, pinned historical submodule trees, and parent-relative graph/retrieval are not implemented. Do not mark ready, merge, or close #4593. Protected #4776 Kev, #4763 release and #4800/#4508 peers untouched. |
Refs #4593. Reuse the parent's index-plus-HEAD boundary for ignored sources and cover the real staged-removal checkout scenario. The authenticated opt-in indexing feature remains incomplete.
|
Refs #4593 — source repair published on existing DRAFT PR; HOLD MERGE. Commit Ignored-source proof now calls the same index-plus-HEAD parent gitlink boundary as the source walker. The real-Git fixture commits a parent with a Verification limit: read back the exact commit and diff; no nonzero Bazel Rust test executed locally. Current-head hosted run 42503394287 was queued and chooses |
|
Refs #4593 — published exact formatting repair |
Refs #4593. Do not merge until integrated submodule admission and Bazel regression acceptance.
|
New actionable source-boundary finding — Refs #4593; DRAFT / HOLD MERGE (2026-11-08 UTC). I checked current exact branch head Reproduced independently with native Git in a disposable fixture (six nonzero assertions, not Rust/Bazel): parent records Source trace: Required repair/verification: fail closed for resolved source-link targets beneath parent index/HEAD gitlinks or nested .git markers (including a removed child marker), and outside the canonical root, while preserving ordinary in-parent links. Apply the same authority before classification reuse, worktree capture, and freshness; do not apply current worktree markers to immutable historical capture. Add a real-Git parent-submodule fixture with a symlink into the child and a normal in-parent symlink control, then run nonzero Bazel Rust tests on the exact head with independent review. This source audit and native Git fixture are not executed Rust tests or proof of a final code fix. No production source changes were made and the existing queued CI was not cancelled. |
Refs #4593. Preserve live-walk exclusion through classification, worktree capture, and freshness even when a tracked symlink resolves into a registered child repository. Adds real Git submodule and symlink regressions. Partial boundary repair; keep PR draft.
|
Refs #4593 — partial fail-closed source repair The parent can track Regression source now includes a Unix real-Git parent+child fixture whose bridge resolves to real child Rust bytes, plus a leaf-symlink control and path-refusal assertions. An independent disposable native-Git reproduction here confirmed the fixture's HOLD MERGE / DRAFT / issue OPEN. This fixes default-exclusion parity only. The canonical persisted default-off opt-in, authenticated .gitmodules+gitlink+bounded-child inventory, historical pinned child Git trees, child-sensitive freshness, parent-relative indexed/live graph retrieval, policy toggles/restarts, and nonzero native Bazel regressions are still required. Do not treat this as |
Repair three hosted automation_runner_test failures by supplying the configured executable identity required by the production prefilter. Use the same identity for the prefilter and retained runner, preserving manual-schedule, exact-ledger, live-lock and lock-race assertions. Add a production-prefilter regression for unconfigured refusal, deduplication and same-occurrence recovery after binding, with zero backend calls and no effectful terminal. Do not relax backend admission, change timeouts, or alter the graph publication changes. Refs #4532
DRAFT / HOLD MERGE
Refs #4593. Keep the issue open pending independent review and hosted Linux verification.
A project can set
index.include_submodules.v1and restart its daemon to index a checked-out direct submodule under its parent-relative paths. The default is false. Grep, structural search, the unmounted-file audit and graph indexing share the boundary. The audit reports skipped nested repositories.Live capture binds the staged parent gitlink and exact pin, the staged and working .gitmodules registration, and the child checkout to the parent's Git administration. It tracks child commits and local additions, edits and removals. Linked worktrees, unrelated clones, nested gitlinks, symlinked source entries and uninitialized children stay outside live indexing. Historical capture uses the selected parent tree and the pinned object in the parent-owned module store. If that store is missing, the historical generation is unavailable.
Verification
At
3fdb50ddbe, five macOS Bazel suites passed 17 selected tests. They cover a call from the parent into its submodule, live grep and graph changes, disabled/restarted indexing, exact historical content after deinitialization, registry convergence, and native Git candidate-tree behavior. The retained scheduler-fixture correction is a separate commit. The workspace dependency fetch and BUILD generator completed. The repository-wide formatting check, MCP production build and hosted Linux run are being verified.