Skip to content

Close remaining dev gaps: stale project heartbeats, GCC worker C compiler, search-jump test, formatting - #1622

Merged
gmh5225 merged 5 commits into
devfrom
claude/dev-ci-gaps
Oct 21, 2026
Merged

gmh5225 merged 5 commits into
devfrom
claude/dev-ci-gaps

Conversation

@gmh5225

@gmh5225 gmh5225 commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Follow-up to #1618: what still fails or drifts on dev after #1610-#1614 and #1604. This branch was rebuilt on dev after #1604 merged. #1604 independently fixed the stale HLT test, the Make array/alignment icons, the call-type menu entries, the search during a pending jump and the MSVC worker compiler, so my versions of those were dropped.

  • Heartbeats of another project (Reuse analysis replicas for bounded source preparation #1612). The worker's heartbeat thread builds its message under the state lock and sends it afterwards, so a heartbeat built just before a reply that opens another project can arrive after that reply. The GUI applied it to the new project: its discovery_complete released Reuse analysis replicas for bounded source preparation #1612's large-image replica gate early, and its function count and generation briefly replaced the new project's. Heartbeats now apply only when their project_id is the one the session's replies established. That interleaving cannot be produced deterministically through the fixture worker, so it has no dedicated test; the normal path is covered by the GUI suite, which depends on heartbeat updates throughout.
  • Compiler for generated C in GCC builds. 082b2e3 (in Fix source contracts and cross-platform validation failures #1604) moved the worker tests that compile the engine's C to Clang for cl.exe builds. GCC's C front end lacks the same builtins (__builtin_bit_cast), so a GUI-project build with GCC still failed NeverDWorkerCallSiteTypes on a floating-point variadic argument. GCC builds now prefer an installed Clang too, keeping GCC only when there is none.
  • Deterministic search-during-jump test. c96ff8d (in Fix source contracts and cross-platform validation failures #1604) starts a search after a pending jump settles; searchResultsClearOnFailureCloseAndProjectSwitch reached that only through timing. searchDuringAJumpStartsWhereTheJumpLands navigates and presses Next before the listing answers. The listing replies first, so the test fails deterministically when the search starts from the cursor the jump is leaving (it failed twice that way before the fix).
  • Formatting. 4328089 and 2da037c left whole-file clang-format 22.1.2 differences in four files, which fails scripts/check_clang_format.py for any later change that touches them. Formatting only.
  • MCP comment. The server's warm:true open no longer mirrors the workbench, which Reuse analysis replicas for bounded source preparation #1612 stopped warming. The comment now gives the server's own reason, which 0a2b35d measured.

Local verification (Linux x64, Release) on this branch: see the comment below. The PR stays open until its Linux, Windows and macOS checks finish.

Both commits left whole-file clang-format 22.1.2 differences in four files,
so scripts/check_clang_format.py fails any later change that touches them.
Formatting only.
#1612 stopped the workbench's owner from warming because its analysis
replicas cannot reuse that cache. The MCP server's comment still described
its warm:true open as the workbench's. It keeps warming because its own
engine answers the decompiles, which 0a2b35d measured.
The worker's heartbeat thread builds its message under the state lock and
sends it afterwards, so a heartbeat built just before a reply that opens
another project can arrive after that reply. Its background state is the
previous project's: its discovery completion released #1612's large-image
replica gate early, and its function count and generation briefly replaced
the new project's. Apply only heartbeats for the project the session's
replies established.
082b2e3 switched the worker tests that compile the engine's C to Clang
when the SDK is built by cl.exe. GCC's C front end lacks the same Clang
builtins (__builtin_bit_cast), so a GUI-project build with GCC still failed
NeverDWorkerCallSiteTypes on a floating-point variadic argument. Prefer an
installed Clang there as well, and keep GCC only when there is none.
c96ff8d starts a search after a pending jump settles, so that the
landing no longer drops the reply as belonging to a moved cursor.
searchResultsClearOnFailureCloseAndProjectSwitch reached that only through
timing. Navigate and press Next before the listing answers: the listing
replies first, so this fails deterministically when the search starts from
the cursor the jump is leaving.
@gmh5225
gmh5225 force-pushed the claude/dev-ci-gaps branch from 19472cf to 643af8c Compare October 21, 2026 14:03
@gmh5225 gmh5225 changed the title Close dev's remaining CI gaps: stale HLT test, GUI search during a jump, formatting Close remaining dev gaps: stale project heartbeats, GCC worker C compiler, search-jump test, formatting Oct 21, 2026
@gmh5225

gmh5225 commented Oct 21, 2026

Copy link
Copy Markdown
Contributor Author

Local verification on 643af8c (Linux x64, Release; engine with clang 23, GUI project with GCC 15 and Qt 6.8.3):

  • NeverDSessionCAPITests: 197 passed
  • NeverDHighControlFlowTests: 430 passed
  • NeverDOriginalBinaryUndefinedIndependenceTests: 114 passed (after the formatting-only change)
  • Engine-build worker tests (CallSiteTypes, StackFrame, SourceVariableTypes, SourceVariableEdits, CLIStackFrame, DiscoveryReady, DiscoveryReadyLegacy, CLIInstructionFlow): 8/8 passed
  • GUI-project CTest (all 54, including every NeverDGui* and NeverDWorker* registered there): 54/54 passed against the freshly built engine. NeverDWorkerCallSiteTypes now compiles the engine's C with the installed Clang in this GCC build.
  • searchDuringAJumpStartsWhereTheJumpLands and searchResultsClearOnFailureCloseAndProjectSwitch pass repeatedly.
  • scripts/check_clang_format.py with clang-format 22.1.2 and scripts/check_gui_i18n.py (structure and access keys) pass.

Merged on local verification at the maintainer's request, without waiting for the hosted checks.

@gmh5225
gmh5225 merged commit 4a683e8 into dev Oct 21, 2026
16 of 31 checks passed
@gmh5225
gmh5225 deleted the claude/dev-ci-gaps branch October 21, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants