Complete the compiler-owned graph snapshot campaign - #172
Conversation
samchon
left a comment
There was a problem hiding this comment.
Commit 92345ec claims the complete 19-issue solo campaign cycle with an implementation-free commit. It changes no product, test, workflow, fixture, documentation, or generated artifact. Issues owned by this draft are #63, #72-#84, #159, and #168-#171; verification remains pending. No issue is resolved by this claim commit.
Close #169: [Provider diagnostics] Preserve both process streams on batch failure
samchon
left a comment
There was a problem hiding this comment.
Commit 8c0233d preserves separately attributed bounded stderr and stdout tails for failed batch producers, adds the Maven/JAVA_TOOL_OPTIONS two-stream witness, and retains existing single-stream and truncation behavior. It resolves #169. Focused verification: pnpm --filter @samchon/graph-test start -- --include=scip_session_publishes_only_a_whole_validated_index (passed).
Refine #169: make the stderr-only tail contract explicit and cover it with a long diagnostic witness after the commit early-warning pass identified a stale comment and missing regression boundary.
Close #171: [Strict readiness] Honor optional caller deadlines
samchon
left a comment
There was a problem hiding this comment.
Commit 55783c6 — PASS, pending integrated experiment evidence. Resolves #171 by preserving an absent readiness deadline in both Rust and C/C++ clients while retaining exact finite-deadline clamping and cancellation. Focused Rust and C++ client suites passed. The Redis strict-route result remains an explicit integrated-CI gate.
Refine #171: add deterministic construction boundaries that fail when either strict client substitutes a private readiness ceiling for an absent caller deadline.
Refine #171: exercise each undefined-deadline retry loop with a controlled monotonic clock beyond the removed 300-second ceiling, instead of inspecting a private field.
samchon
left a comment
There was a problem hiding this comment.
Commit 809c68e — PASS. Follow-up for #171: the Rust and C++ retry tests now cross the removed 300-second ceiling through the observable retry loop under a restored-in-finally monotonic clock override. The old default throws; the optional-deadline implementation reaches success. Both focused suites passed.
Close #170: [CI] Give the Clang producer cache one narrow build owner
samchon
left a comment
There was a problem hiding this comment.
Commit c320521 — PASS, pending hosted workflow execution. Resolves #170: the self-contained Clang recipe and adapter pin are the only cache inputs; each workflow has one predecessor that restores/builds/verifies/saves before consumers; C-family consumers require the exact cache and cannot rebuild. Deterministic cold/hit/divergence/key/ordering tests, benchmark system tests, and all 491 repository tests passed. Hosted cache behavior remains a cycle-CI gate.
Refine #170: use a same-run artifact for the owner-to-consumer handoff, keep cache saving best-effort, and refuse immutable exact hits that fail producer validation.
samchon
left a comment
There was a problem hiding this comment.
Commit c5b6421 — PASS. Follow-up for #170: the producer job now uploads its verified local tree and every C-family consumer downloads that exact same-run artifact, independent of best-effort cache-save permissions. Invalid immutable exact hits fail closed; consumers retain no build authority. Focused workflow and deterministic benchmark contract tests passed.
Refine #170: tar the verified producer before upload and unpack it before consumer validation so GitHub artifact permission normalization cannot remove clangd's executable bits.
samchon
left a comment
There was a problem hiding this comment.
Commit 59c6de3 — PASS. Follow-up for #170: both workflows now tar the verified producer before artifact upload and unpack it before setup revalidates the binaries, preserving executable permissions across GitHub artifact normalization. Focused workflow and dedicated cache-owner contract tests passed.
Close #168: [Experiment/index-time] Bind every cell to its intended and executed strict route
samchon
left a comment
There was a problem hiding this comment.
Commit f9cc69f — PASS, pending hosted matrix evidence. Resolves #168: CLI emits bounded structured route provenance; index-time derives canonical owners from GRAPH_PROVIDERS, validates intent/outcome/toolchain, preserves historical cells, suppresses Gson/Redis fallback ratios, and emits workflow warnings; experiments retain compact 15-family coverage and stable unresolved counts. Excalidraw now pins verified protocol-v1 fixture b4a1909 (external draft PR #1). Benchmark contracts and all 491 repository tests passed. A complete hosted matrix remains the final evidence gate; no partial result publication was written.
Refine #168: normalize real producer self-identification against explicit toolchain pins, bind every cell to its corpus language, reject impossible truncation claims, and require separate Gson and Redis warnings.
samchon
left a comment
There was a problem hiding this comment.
Commit ba6a796 — PASS. Follow-up for #168: real Rust/Java/Clang producer self-identification now binds to explicit provisioned tool/build pins; incoming cells must match the corpus language; truncated routes can only be unknown with empty provenance; and Gson plus Redis each require their own workflow warning. Deterministic benchmark contracts passed against the real version shapes preserved from run 33377586889.
Close #159: Explore repository-context providers for repository-wide topology
samchon
left a comment
There was a problem hiding this comment.
Commit cd28896 — PASS. Closes #159 on its verified residual acceptance: fresh static generations admit current topology joins; Cargo/Gradle/CMake/pnpm share canonical containment; pnpm facts are package-confined and boundary-validated; pnpm/Cargo observe deep workspace membership atomically; Windows Cargo resolves a native executable; and the retained zero-spend experiment uses two real stdio MCP topology calls with exact authoritative facts, explicit gaps, compatible joins, and a 48 ms validated topology-model no-op. Focused tests passed, all 491 repository tests passed, coverage is 100% for statements/branches/functions/lines, and benchmark system tests passed.
samchon
left a comment
There was a problem hiding this comment.
Commit cd82e6b — FOLLOW-UP REQUIRED. It closed the boundary-free substring and Java-alias false positives in #168, and benchmark system tests passed, but the required early-warning pass reproduced a false negative against the preserved C/C++ producer version with nested URL/commit parentheses. Follow-up 63844ae replaces the brittle terminal-parenthesis parser with exact immutable-pin boundary matching.
samchon
left a comment
There was a problem hiding this comment.
Formal commit review: FOLLOW-UP REQUIRED.
The invalid-config regression is isolated from prior sampler state, but its assertion accepts any message containing performance editSamples. Commit 493b010 pins the exact validation error so unrelated failures cannot satisfy the oracle.
samchon
left a comment
There was a problem hiding this comment.
Formal commit review: PASS.
The deterministic sampler test now asserts the exact invalid editSamples validation message after resetting state, closing the false-positive oracle identified on 1c2b1b0. Focused lifecycle and contract tests pass.
Pin the reviewed semantic-breadth producer, run its exact unit and slow fixtures before installation, and publish the synchronized provider contract. Close #72: [Bulk index][Rust] Export rust-analyzer HIR snapshots beyond SCIP
db54552 to
f8309a7
Compare
samchon
left a comment
There was a problem hiding this comment.
Formal commit review: PASS.\n\nThe amended commit ends with the required exact Close #72 line. The Rust producer verifier now runs the pinned unit and slow fixtures with exact filters, requires exactly one passing test from each Cargo invocation, binds RUN_SLOW_TESTS to the slow target, and executes both before the release build. Pin, catalog, benchmark oracle, provider manifest, and generated README agree on 9923b2c.
43a410a to
d4b34b5
Compare
samchon
left a comment
There was a problem hiding this comment.
Formal commit review: FOLLOW-UP REQUIRED.\n\nThe native baseline initialized clangd without a CDB-triggering document/path, and representative semantic claims admitted prefixed qualified names. Amended commit d4b34b5 supplies compile-commands-dir plus didOpen and uses an exact endpoint helper with a wrong-prefix negative twin.
Pin the cross-platform producer, prove its semantic and identity breadth, compare native background indexing, enforce resident no-op p95, and bind Redis and LevelDB to representative compiler facts. Close #73: [Bulk index][C/C++] Share one Clang compilation-universe provider
d4b34b5 to
243834f
Compare
samchon
left a comment
There was a problem hiding this comment.
Formal commit review: FOLLOW-UP REQUIRED.\n\nThe CDB trigger and exact endpoint matcher are fixed, but the deterministic baseline used Windows literals on POSIX and its progress timer could reject unobserved while initialize was still pending. Amended commit 243834f uses native paths and one observed initialize/progress error flow.
samchon
left a comment
There was a problem hiding this comment.
Formal commit review: PASS.\n\nThe native Clang baseline uses OS-native paths, the exact compilation-database directory, and a real didOpen trigger. Initialize failures cannot race an unobserved progress rejection. Representative semantic edges require exact endpoints with a wrong-prefix negative twin, and the Close #73 trailer and synchronized producer pin are correct.
c58fa5b to
4d3237d
Compare
4d3237d to
354ccc9
Compare
samchon
left a comment
There was a problem hiding this comment.
Formal review for 354ccc9: PASS. The false generic-JDT agreement and Close #74 trailer are absent; the commit honestly advances only the pinned Java compiler producer, authenticated Gradle/Maven acceptance, stable regeneration and native Maven baseline. Pin 994e203, archive digest AC037AED..., initial PR #1, acceptance PR #2, generated docs and benchmark negative fixture are synchronized. The mandatory read-only early-warning pass reported CLEAN. #74 remains open for the real frozen JDT bulk producer.
samchon
left a comment
There was a problem hiding this comment.
Early-warning review for 76cef95: follow-up required.
- JdtGraphClient advances watchedInputs before the producer generation is accepted, so one stale unchanged refusal clears the dirty fence and the next refresh admits the same stale generation.
- Producer mode/sequence are treated as the consumer cursor. An execute-command response discarded by cancellation, or a one-shot consumer validation failure, leaves the producer ahead; its next full snapshot is unchanged and the adapter permanently rejects it.
- Shared Java IDs agree only for the Maven-root fixture. Gradle javac targets are task paths such as :compileJava and :compileTestJava, while JDT currently scopes every non-Maven node as jdt:, losing both lane agreement and main/test separation.
The successor must commit input digests only with an accepted generation, derive change mode from the consumer's accepted generation/universe, make adapter sequence transactional, add cancel/validation retry regressions, derive standard Gradle task coordinates from project/source roots, and prove main/test javac/JDT ID agreement in a real Gradle fixture.
Pins, archive digests, direct fallback topology, single bulk request behavior, documentation, and benchmark twins are otherwise coherent. No changes were made by the reviewer.
samchon
left a comment
There was a problem hiding this comment.
Early-warning review for fd94d38: implementation is coherent; one P2 test gap remains.
The cancellation and one-shot validation recovery fixtures assert only the public client generation. They would still pass if the adapter advanced its internal protocol sequence on a rejected Store.apply, and they do not prove watched-file notifications are retransmitted while input state remains uncommitted. Assert recovered snapshot.protocol.sequence === 1 and the exact repeated workspace/didChangeWatchedFiles count. The stale-generation fence should likewise show the moved notification repeats.
Transactional watchedInputs, consumer-relative full-snapshot mode recovery, Maven priority, standard Gradle :compileJava/:compileTestJava/:module:compileJava mapping, custom-source JDT-local fallback, real Maven/Gradle agreement, pins and documentation are otherwise consistent. Hosted Java agreement was still queued at review time. No changes were made by the reviewer.
samchon
left a comment
There was a problem hiding this comment.
PASS for 313e6bf.
The mandatory read-only early-warning pass is clean. Cancellation now occurs only after workspace/executeCommand is observed; the producer cursor is ahead while its response is discarded, retry accepts the complete snapshot with protocol sequence 1, and watched-input notifications are retransmitted exactly twice after cancellation/validation rejection and three times across two stale-generation refusals. The focused regression passed.
The cumulative fd94d38 implementation already passed the full 493-test, 100% statements/branches/functions/lines coverage gate. Latest hosted test, experiment, and index-time runs remain the final acceptance evidence.
samchon
left a comment
There was a problem hiding this comment.
PASS for 1221304.
The mandatory read-only early-warning pass is clean. The isolated --fail-initialize fixture combines a live external signal with an actual JSON-RPC initialization rejection, deterministically exercising raceWithAbort's underlying-task catch without changing queue or cancellation semantics. Focused coverage passed, and the full local 493-test coverage gate reports 100% statements, branches, functions, and lines. Latest hosted 3-OS test and Java-only experiment remain the final gates.
samchon
left a comment
There was a problem hiding this comment.
PASS for 3190d8b.
The mandatory read-only early-warning pass is clean. This is a one-line digest correction: hosted Java run 33617595713 downloaded the complete archive after an EPIPE retry and measured 9360c956c53cf77492c5b33a4ef19e63abceda208a7bc7798107b55f11efca56, exactly matching the new catalog pin. The superseded 8f29 value came from a 13,005,109-byte local file that fails gzip EOF validation. Setup verifies the complete archive before extraction/build, and the pin regression remains green. Latest test and Java-only runs are pending.
Signed-off-by: Jeongho Nam <samchon.github@gmail.com>
samchon
left a comment
There was a problem hiding this comment.
Commit early-warning review for 1e71316: follow-up required.
[P2] tests/test-graph/src/features/test_experiment_corpora_are_commit_pinned.ts only checks that verifyGitTree-related identifiers occur in source text. It still passes if the actual-versus-expected comparison and throw are removed, or if finally cleanup of the temporary .git directory is removed. Add an executable regression test that proves a wrong tree is rejected and that .git is removed after both successful and failed verification.
The producer commit, root tree, README, and provider-support pins otherwise agree; no demonstrated integrity regression or out-of-scope change was found.
Signed-off-by: Jeongho Nam <samchon.github@gmail.com>
samchon
left a comment
There was a problem hiding this comment.
PASS for 17ef236.
The mandatory read-only commit early-warning pass is CLEAN. The diff is limited to the three intended experiment/test files. verifyGitTree was moved without semantic change; its executable fixture independently proves the known 100644 LF tree, wrong-tree rejection, and temporary .git cleanup after both success and failure on all supported test platforms. The Maven verify-to-install change preserves the full pinned reactor build while installing org.eclipse.jdt.ls.tp into the local repository required by the unchanged focused test command. No out-of-scope or additional semantic risk was found.
Intent
Complete the accepted post-#164 compiler-owned graph snapshot cycle as one
integrated change. The pull request owns all implementation-ready work found by
the #167 solo campaign after four full-scope discovery rounds.
Claimed issue set
[Bulk index][Dart] Export analyzer AnalysisSession snapshots atomically #84.
This is 19 accepted issues grouped into one solo campaign pull request. #162 is
the mission parent and #167 is the operative handoff; neither is claimed for
mechanical closure by this implementation cycle.
Dependency order
including their external producer pins, semantic fixtures, lifecycle and
phase-separated measurements.
language's producer, identity, universe, compatibility, and fallback owned
by that route.
route survives its own acceptance matrix.
Consequence surface
The cycle covers compiler/analyzer producers and fallbacks, snapshot and
repository-context transactions, initial and resident refresh, CLI/TypeScript/
MCP/viewer consumers, Windows/macOS/Linux process and path behavior,
deterministic tests, real-provider experiments, index-time measurement,
generated provider support, and the root README contract.
Verification
Pending at claim time. The integrated head will run focused regressions first,
then package type checks,
pnpm build,pnpm test, 100%pnpm coverage, theGo sidecar suite, benchmark deterministic tests, every applicable real-provider
experiment, the complete index-time matrix, ordinary pull-request CI, and a
fresh solo Self-Review over the full base-to-head diff.
Boundaries
No issue-closing keyword appears in this claim. Closing lines will enter only
the commits whose surviving changes earn them. Merge, release, paid agent
benchmarks, global toolchain installation, and upstream producer merge/release
remain outside the current authorization.