Repository navigation
Bound the asan lane's build jobs by the container's memory - #1061
Merged
Merged
Conversation
signal_connect's target_script_not_compiled note and LLM_INSTRUCTIONS said to restart the editor or call editor_reload_project. That tool is EditorFileSystem.scan_sources, a file rescan, and the editor reads its autoloads once at startup. project_set_autoload already said the rescan does not register the singleton. The live harness now asks the engine. After project_set_autoload it calls editor_reload_project and repeats the refused connect, and the script still does not compile on 4.5.1, 4.6.2 and 4.7.2. Both texts now say to restart, and that the rescan does not register it. Fixes #1002
The editor_reload_project call added for #1002 is the first scan_sources after earlier blocks wrote editor_copy_probe.gd and sandbox_run.gd behind the editor. On 4.5.1 and 4.6.2 the engine prints Unrecognized UID for their two sidecars; 4.7.2 does not. The lines are allowed by their exact UIDs and source file, which Godot derives from the path and contents, so any other UID error still fails the run.
The editor_reload_project call added to the uncompiled-script block ran a scan_sources in the middle of the harness. It met files other blocks had written behind the editor and drew engine errors about them: two Unrecognized UID lines on 4.5 and 4.6, and on CI's software-rendered 4.5.1 runner a frame_pre_draw connection error, on both attempts. None of that is about the autoload advice. The engine fact the rescan checked was measured on 4.5.1, 4.6.2 and 4.7.2 and is recorded beside the assertion. The block keeps checking that the note says to restart and no longer offers the rescan.
runtime_read_output relayed Godot's colour escape codes in its records, 40 of a fresh headless editor's first 41, so a match against the visible text failed. The ring now strips terminal escapes from a message when it is captured, before the size bound. The stripper moves to didi/common/terminal_text.hpp so the extension and the export tools share it. The offline helper Godot logged Didi's own INFO line before the WARN default applies, so shader_check_compile's raw_output began with it. That line is DEBUG now. The live contract snapshots show raw_output starting with the engine's banner on 4.5, 4.6 and 4.7. Fixes #1028
trial.py scored a Claude tester's transcript where the client filed it, under its own projects store, and never copied it. Trial 05's is gone, and nothing in its directory can reproduce its scores. The transcript is now copied into the trial directory as transcript.jsonl and the copy is scored. And the tester's tool list restricted nothing: --allowed-tools only pre-approves, and bypassPermissions approves everything, so trial 06's tester also reached PowerShell and earlier ones met the host's skills. The Claude tester now runs with --tools naming seven built-in tools, ToolSearch among them because Didi's tools arrive deferred, with --disable-slash-commands and --setting-sources project. A probe with Claude Code 2.1.220 listed exactly those seven, with Didi's tools behind ToolSearch. trial.json records the environment as tester_environment. Fixes #1005 Fixes #1007
tools/localci built every lane with Ninja's default of CPUs + 2, and ASan builds of the largest translation units need several GB each. On a 16.7 GB, 24-CPU Docker VM the asan lane was killed with "Killed signal terminated program cc1plus", which reads like a compile error. The asan lane now builds with one job per 2 GB of the container's memory, never more than its CPUs; on that VM it chose 7. The gcc and clang lanes keep Ninja's default. The lane prints the count it chose, run.sh passes DIDI_LOCALCI_JOBS through, and that overrides any lane. Fixes #1050
This was referenced Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
tools/localci/lane.shbuilt every lane withcmake --build --paralleland no job count, so Ninja ran CPUs + 2 compilers. ASan builds of the largest translation units need several GB each. On a 16.7 GB, 24-CPU Docker VM the asan lane died withc++: fatal error: Killed signal terminated program cc1plusontool_registry.cpp, which reads like a compile error rather than the memory limit it was.== build (7 jobs)or== build (Ninja's default: CPUs + 2).run.shpassesDIDI_LOCALCI_JOBSinto the container, and it overrides any lane.tools/localci/README.mddocuments the override.Related Issues
Fixes #1050
Stacked on #1060, which merges first.
Type of Change
Checklist
tests/covering new functionality. Tooling only; verified by a cold run below.tests/run_godot_integration.ps1on Godot 4.5.1. Not touched.didi --dump-tool-manifestfrom the same build, preserves the Phase 4/5/6 contracts, and keeps reserved runtime debugger tools marked unimplemented. Not touched.docs/SURFACE_AMENDMENTS.md. No new tool.docs/BUILD_QUEUE.mdsaysIN PROGRESS, orCOMPLETE (#<this pull request>). Not a queue item.docs/andREADME.md.tools/localci/README.md.Verification
bash tools/localci/run.sh asanon the same machine (Docker VM: 24 CPUs, 16.7 GB). It printed== build (7 jobs), built cold with no killed compiler, and randidi_testsunder ASan and UBSan:Results: 936 passed, 0 failed,lane 'asan' passed.