chore(release): @hasna/repos v0.1.40 - #61
Merged
Merged
Conversation
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.
Cuts
@hasna/repos0.1.40. Version bump plus changelog only — no source change.Why this release matters more than a routine bump
0.1.39predates both bare-name resolver fixes. Measured, not assumed:and the installed 0.1.39 bundle agrees —
_factory_srcappears in 0 of 5shipped
dist/*.jsfiles, while positive controls (AmbiguousRepoName,worktrees) each match 4 of 5 and a runtime-built sentinel matches 0.So on 0.1.39 the defect is live. Against the real registry:
A worktree cut from that is a day stale and on the wrong branch. 0.1.40 is the
first release in which that stops.
Behavioural verification of all four #60 sites
Not a symbol grep —
isDerivedCheckoutPathalready had 20 hits before #60 andthe merge does not even touch
src/db/repos.ts. Instead the same harness ranagainst a 200 MB snapshot of the live registry (sqlite
.backup, so WAL-consistent)under
HASNA_REPOS_REQUIRE_EXPLICIT_DB_PATH=1, with a sentinel row present onlyin the copy to prove isolation held rather than assuming the env var was honoured.
afb0e420ops-producers.resolveRepoPath/…/_factory_src/zzmirroronlydb/repos.getRepo/…/_factory_src/zzmirroronlynullgraph.queryRelated[]graph.getDeps[]FAILURES=6before,FAILURES=0after. Both arms reachable, so the harness canfail and can pass.
Over-breadth control — a filter that excluded everything would also pass a
naive test. A name with no mirror (
zzcanon) still resolves and still bindsgraph edges in both arms; where a derived and non-derived row share a name
(
zzboth), the canonical one wins. So the filter narrowed the defect and nothing else.Parenthesisation — checked explicitly, since
ANDbinds tighter thanOR.resolveRepoPathis the only site with a multi-branch predicate and it wrapscorrectly:
WHERE (name = ? OR path = ? OR (org || '/' || name) = ?) AND (…).The other three are single-equality, so precedence never applied.
What I did NOT check
graph.ts:120, the dependency-edge builder, is exercised only through itsshared
nonDerivedCheckoutSqlhelper and the PR's own tests — not through afull
buildGraph()run, which would have needed on-diskpackage.jsonscans.established to pass, not audited.
Pre-existing, non-blocking
src/cli/docs-parity.test.tstimes out at its 30000 ms budget. It reports30030.90ms— the budget firing, so the true runtime is unbounded and this isno result rather than a failure. It reproduces identically on tag v0.1.39,
so it is not a regression from #60; station01 was at load 13.4. CI runs the same
test on an unloaded runner and passed 8/8 at v0.1.39. Suite otherwise
781 pass, typecheck clean.Agent: Silvanus
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.