Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions docs/upstream-sync/UPSTREAM.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@
global allocator of the static musl Linux builds. It is a release-build fix,
not an upstream port, and changes no graph output. See the dated entries
below, including the `v0.53.2` release record.
- **Shipped in codegraph-rs `v0.53.3`, 2026-10-03:** #314. The kind column of
`search`, `callers`, `callees` and `impact` is padded the way upstream pads
it, and the store tests' lock probes use their caller's bound. It is a parity
fix, not an upstream port, and changes no graph or JSON output. See the dated
entries below, including the `v0.53.3` release record.
- **UI family, phase 1 (browser viewer):** started after the owner selected the
Penpot direction D design on 2026-10-02. The viewer — the `codegraph-ui`
server over upstream `v1.6.1`'s `ui/` frontend, behind `CODEGRAPH_UI=1` as
Expand Down Expand Up @@ -167,6 +172,82 @@ below remain immutable historical evidence.

## Sync log

### 2026-10-03 — `v0.53.3` RELEASED: #314 shipped

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove the AI attribution trailer

The reviewed commit message ends with 🤖 Generated with [Claude Code](...), which is an AI attribution trailer explicitly prohibited by this repository’s commit discipline. Remove that footer before landing the commit so the permanent history complies with the contributor contract.

AGENTS.md reference: AGENTS.md:L197-L199

Useful? React with 👍 / 👎.


Release-please PR [#315](https://github.com/sunerpy/codegraph-rust/pull/315)
merged as `81bd7c711bb6fd680113f2a946e927d488c566d6`, and tag `v0.53.3` was cut
at that exact commit.

- The merge has the tree of the PR's head `b2f83bd`, `7e2db71…`.
- The owner re-ran the bot's CI run and approved the PR as code owner.
- The implementation PR #314 merged as `72eefae`, with the tree of its reviewed
head `603286d`. The kirocodex review passed in round 1, with no blocking
items.

Release workflow run
[`37143381806`](https://github.com/sunerpy/codegraph-rust/actions/runs/37143381806)
passed all twelve jobs on its first attempt.

- It ran over main CI run
[`37143381765`](https://github.com/sunerpy/codegraph-rust/actions/runs/37143381765),
whose required `CI Success` passed.
- That run's informational Coverage job failed once, in
`git_pending::tests::a_system_attributes_file_is_a_conversion_risk`; see the
entry on stand-in executables below.
- The release was published at 2026-10-03T18:25:40Z UTC.
- The official `codegraph-0.53.3-x86_64-unknown-linux-musl.tar.gz` digest is
`769ca112ff554a82b9eabadabc11fa2f0322a40430e875244244a749e3330427`.

Black-box acceptance of the downloaded release, against the official `v0.53.2`:

- **Artifacts.** `SHA256SUMS` and `gh attestation verify` passed for all six
archives. The binary reports `codegraph 0.53.3`, and its `.comment` section
names rustc 1.98.0.
- **The kind column.** On the mini fixture, `v0.53.2` prints `functionadd`;
`v0.53.3` prints the kind padded to twelve columns in all four commands,
for example `function runDemo` from `callers`.
- **JSON and graph.** The `--json` output of all four commands and
`codegraph export` are byte-identical to `v0.53.2`'s.
- **Index.** An index built by `v0.53.2` reports `current` to `v0.53.3`; the
extraction version is unchanged.

### 2026-10-03 — The kind column of the human output is padded

Not an upstream port: a parity fix. Upstream's CLI prints
`node.kind.padEnd(12)` before the name (`src/bin/codegraph.ts` at `v1.6.1`).
The Rust rows use the same `{:<12}{}` layout, but `NodeKind`'s `Display` wrote
its name with `write_str`, which ignores the formatter's width, so `search`,
`callers`, `callees` and `impact` printed the kind and the name run together.

#314 makes `NodeKind`, `EdgeKind`, `Language` and `ReferenceSubkind` format
through `Formatter::pad`. Output written without a width is unchanged:
`to_string()`, `--json` and the index.

The same PR fixes the cross-process lock probes in the store tests. A probe
always tried the lock with an 80 ms deadline, whatever bound its caller passed.
The deadline was set before the child opened and validated the lock file, so on
a slow Windows runner a probe of a free lock reported `TIMED_OUT`, as it did on
main's CI at `c03fcbd`. Probes now take the caller's bound.

### 2026-10-03 — Stand-in executables are run once before tests rely on them

Not an upstream port. Three tests write a shell script and run it at once:
git_pending's fake git, git_pending_fast_path's hanging git, and cli_ui's
stand-in browser. When another thread of the same test binary forks while the
script is still open for writing, the child keeps the inherited descriptor until
it execs, and running the script meanwhile fails with `ETXTBSY`.

- **The failure.** Main's Coverage job on `81bd7c7` failed this way: `git` read
the failed start as a failed git, and `conversion_risk` returned `None`.
- **The reproduction.** On Linux, 8 threads forking `/bin/true` made 313 of
3,000 fresh scripts fail to start. Starting each script once, retrying while
the error is `ExecutableFileBusy`, left 0 failures in the 7,500 starts that
followed.
- **The fix.** #317 (merged as `aef4efb`) adds that warm-up to the three
helpers. The hanging git now uses `exec sleep 30`, and its test checks that
the 300 ms timeout actually elapsed; before, a failed start could make the
test pass without the timeout ever running.

### 2026-10-03 — `v0.53.2` RELEASED: #310 shipped

Release-please PR [#311](https://github.com/sunerpy/codegraph-rust/pull/311)
Expand Down
Loading