feat/distcc-and-crawl-tables #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/distcc-and-crawl-tables"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Every release of every module came back needing review. Reproduced against limboai, the one module in the deployed catalog: its README carries exactly the compatibility table this scanner exists to read, and four separate defects each stopped it dead. - scanTables required /godot|engine/ in a *header* cell. LimboAI's headers are "Plugin Version", "GDExtension/AssetLib" and "Module"; the word is in the cells. godotCol stayed -1 and the whole table was skipped. - versionCellMatches trimmed decoration from the ends only, so "`1.8.x` releases" kept a trailing word that defeated both the equality test and the .x suffix test. A range of the module's own releases was not handled at all. - boundsFromCell's patterns were anchored on a bare number, so "Godot 4.7", "Godot 4.6 or higher" and "Godot 4.4, 4.5, 4.6" all failed. - the prose fallback was defeated by markdown: engineNum's separator class is narrow enough that the "**" in ">**Supported Godot Engine:** **4.6**" breaks it, and floorPat's `supports?` cannot match "Supported" -- the \s+ after it lands on the "e". A column may now be identified by its cells when no header names the engine. That does not relax the package rule: every cell read this way contains the literal word, which is the same guarantee the header requirement was providing. Two changes here are more than widened patterns. A series row now applies rather than proposing, unless the same table names the release exactly. Most support tables are written entirely in series rows -- the whole of LimboAI's is -- so treating every one as a proposal left every release of such a module in review, which is the failure this commit is about. Specificity still decides where the two meet: TestScanSupportTableSeriesYieldsTo AnExactRow covers the half the old TestScanSupportTable case was pinning. A table carrying two engine columns no longer deadlocks. LimboAI states both a GDExtension and a Module engine and they disagree by a minor; read naively both are exact, Resolve's contradiction check fires, and the candidate lands back in review with a different note. gbb compiles a module into the engine, so the Module column settles it and the other is demoted to a proposal rather than dropped -- a reviewer can still see that the repository also says 4.6. repoEvidenceFor was separately broken, and its own comment described the behaviour it did not have: it re-scoped the default branch's evidence onto each tag rather than rescanning it. Scan compares a table's version column against the tag it is given, so the single scan with no tag in hand matched no row and a README at HEAD contributed nothing to any release. The documents are held and scanned per tag now; blobReader caches by object id, so this is CPU and no further git IO, and TestModuleVersionsReadsASupportTableAtHEAD asserts both. The fixture is limboai's real README, taken from the mirror the deployed service keeps. Four things had to fail together to produce the symptom, so one real document is worth more here than four synthetic cases. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>