Repository navigation
Console: catch up to class and translation-unit work (unit files, pinned compiler, tiers, no auto-PR for projects that publish elsewhere) - #17
Merged
Conversation
A chaos-db can publish stats.tiers (the decomp's chaos_db_ci.py already does). When it is there the header shows two more bars, Converted and Linked, with their own denominators (source-owned functions, matched units) and the MATCHED bar is relabelled. Repos without tiers look exactly as before.
The compiler check passed when tools/<compiler>/ existed at all, so a machine holding only the older builds went green and then failed every verify call the repo hands out. The pin is the default of the match tool's version arg; when tools/<compiler>/<pin>/ is missing the item fails, names what is installed, repeats the repo's setup text and blocks scheduling. Descriptors with no version default, or a compiler found on PATH, are checked as before.
…rojects that publish elsewhere - srcFiles.ts inverts the atlas's per-function srcPath (the decomp's own srcpath answer) into file -> functions. The stranded sweep and the auto-PR attribution used to find a function's file by basename, so a promoted unit (named for its class, owning many functions) was invisible. Now a file that owns several functions is recognised as a unit: the sweep reports it once and leaves it to the repo's whole-unit check, and attribution never claims or PRs it. Bucketed single-function files are found by their real path. - Ready-made match calls take the file from the same map, use the descriptor's default compiler, and tell the agent when the file is a unit (prove it with tubuild_verify) or when a new file's directory is srcpath's call. - matchConventions.autoPr: false locks the Push toggle and stops every auto-PR path for that project. Absent keeps today's behaviour. Documented in the schema and types. - The work guide and draft-source policy say C++ when the descriptor's language starts with C++, say that the integrator publishes when autoPr is off, and add a class-first step when the unit tools exist. A descriptor that says nothing gets the old text unchanged. - scripts/verify-unitfiles.mts covers the above (and loads a real descriptor and atlas when given paths).
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.
Console was built for a pile of unmatched functions: one AI per batch, one plain-C file per function, a rolling per-agent PR. sm64ds-decomp has moved on. Every function is matched, the work is real C++ classes folded into translation units, the canonical compiler is
2004/b56, and one integrator publishes. Console still assumed the old shape in five places. These are the small fixes that need no schema redesign and no new mode. The decomp half is a separate tooling PR (tangos.json).What was wrong
d_a_obj_foo.cpp) and owns many functions. The stranded sweep and the auto-PR attribution find a function's file by basename, so a unit was invisible to both.matchcall guessedsrc/<name>.cand trusted whateverversiondefault the descriptor had.tools/mwccarm/existed. A machine with only the 1.2 builds went green and then failed every verify call.stats.tiers).Change
srcFiles.tsinverts the atlas's per-functionsrcPath(which the decomp'schaos_db_ci.pytakes from its ownsrcpathresolver) into file to functions. A file that owns several functions is a unit.matchcalls: take the file from the map, use the descriptor's default compiler, and add a note when the file is a unit (prove it withtubuild_verify) or when a new file's directory issrcpath's call.matchConventions.autoPr:falselocks the Push toggle ("Push: locked", tooltip explains) and stops every auto-PR path for the project. Absent keeps today's behaviour, so PictoChat is untouched. Local verification, banking and the recovery branch are unaffected. Declared in the schema andTangosMatchConventions. The manual "open a PR from my commits" button is the operator's own action and is not changed.languagestarts with C++ andautoPris false; one extra class-first step (letmanglespell names, place withsrcpath, prove a unit withtubuild_verify) when those tools exist. A descriptor that says nothing gets the old text unchanged.versiondefault of thematchtool. Whentools/<compiler>/<pin>/is missing the compiler item fails, lists what is installed, repeats the descriptor'ssetuptext, and blocks scheduling. No pin, or a compiler on PATH: checked as before.stats.tiersis present, two more bars (Converted, Linked) with their own denominators, and the first bar reads "Matched". Repos without tiers look the same as before.Deliberate divergences
workUnit/languageMode/gates, a unit scheduler andnext_unit, role presets for producer / verifier, per-function tier and TU-state colouring in the Atlas,detectSrcLayout/detectLanguagefor nested layouts in generated descriptors.Verification
npm run typecheck -w consoleclean;npm run console:buildbuilds.npx tsx scripts/verify-unitfiles.mts <tangos.json> <chaos-db.json>(new): 56 checks, all pass. Covers the file map (unit, function, unknown, backslash paths), the basename fallback,autoPrand language detection, the ready call with and without an atlas (including a plain-C descriptor staying.cwith its own version), both work guides, the class step numbering, and the compiler pin with a temp tools folder. With the two paths it also loads the real refreshed descriptor and a real chaos-db (417 multi-function unit files found,stats.tierspresent).npx tsx scripts/verify-gitsafe.mts: still passes.node schema/validate.mjsover the refreshed sm64ds descriptor and the pictochat descriptor: ok.matchcard withversion = 2004/b56. Then over MCP, read-only: 62 tools listed,srcpathon four symbols (a folded unit gives one file for two methods),matchonAngleDiffwith2004/b56gives MATCH,tiers,mangle,tubuild_inspect.matchthrough Console appends a row to the repo'sconfig/match_attempts.jsonl(attempt-tree logging is on in the descriptor). Fine for matching, noisy for a read-only look; worth revisiting when unit mode lands.