You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit cce45f8
Browse filesBrowse the repository at this point in the historyBrowse files
fix(cli): the base-URL scanner counted brackets, and one door ignored the key
Independent review of this session's own work. Four defects, all in code added
hours earlier.
**The scanner followed directory symlinks with no visited set**, under a comment
claiming it "never re-enters one". `src/loop -> <root>` produced 41 findings for
ONE file, terminating only because Linux's 40-symlink ELOOP limit made
readdirSync throw into the catch. A link pointing outside the project — a
monorepo sibling, a linked package — got walked on every `meta verify`. It no
longer follows them, matching the sibling scanner: a provider reachable through
a link is reachable through its real path, so the duplicates were pure inflation
of the count the header prints.
**A `>` inside a string or comment both false-positived and false-negatived.**
Counting brackets is what the first version did, and it was wrong in both
directions:
<EntityFetcherProvider title="a > b" fetcher={f} baseUrl="/api">
→ the `>` in the STRING ended the tag before baseUrl: a nag on a correct
provider.
<EntityFetcherProvider fetcher={mk(")")}>
→ the unbalanced `)` in a string meant depth never returned to zero, so
the 4000-char cap swallowed an unrelated `baseUrl` later in the file and
SUPPRESSED a real finding.
String literals (all three quote styles, with escapes), line comments and block
comments are now skipped rather than counted. A regex literal is deliberately
not handled and says so.
**The verify wiring was gated by nothing** — `git grep "missing-base-url" --
'*test*'` returned empty. Nothing asserted that verify calls the scanner, that
the header prints, that the rule reaches the structured payload, or that
suppression works. A scanner nobody wired is the same as no scanner, and the
migration note calls this "the only gate that can see this half", so the wiring
IS the claim. Proved by unwiring it.
**`includeUiTier` was a config key only one of the two doors honoured.** It is
settable (`MetaobjectsGenConfig extends Omit<ResolvedGenConfig, …>`) and is the
escape hatch for an owned generator whose name was changed — and `meta docs`
read it while `runGen` computed the aggregation unconditionally. So that adopter
got `agent/ui.md` from one command and not the other: exactly the two-doors
defect the marker exists to close, copied from `includeHonoRoutes`, which had it
too. Both now prefer the explicit key at both doors, including an explicit
`false` over a suite that has a UI generator.
Smaller, same review: the replay remedy named `meta migrate baseline --from-db`
without the `--db <url>` it requires — a remedy you cannot run as typed, one
scale down from the defect that commit fixed. And it identified the engine's
error with a cross-package `instanceof`, the mechanism that split ts-poet's
`Code` in 0.21.6; it now checks the name and the position fields, gated with a
foreign-realm error that `instanceof` refuses.
Docs: the migration note promised the advisory with no caveat, when
`--no-antipatterns` turns it off along with the modeling nags. And the changelog
dismissed the estate's "21 entries became 6" report as unreproducible — it is
real on the corrupt-read path (an unreadable manifest reads as ABSENT, so the
next gen writes only its own entries and the rest are refused forever), which is
now recorded as its own open defect with the decision it needs.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTcEKXTQMYt84fAjuw5A2M
0 commit comments