inventory.mjs reports ok for pins whose tag it cannot parse #109
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda#109
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Why
deploy/inventory.mjscannot answer two of its own three questions for a pinwhose tag is not numeric, and reports
okrather than saying so.tagLines()returnsnullfor anything non-numeric — the comment says as much:compare()then gates both remaining checks on the result: thelagflag needsnewestInLine, and thelineflag needsnewestAny && newestInLine. Withneither, the row renders
ok, blank mark,IN LINE ?, no note.That contradicts the file's own stated rule:
And it is a near-relative of the failure the file was written for. The comment
sitting a dozen lines above the gap says it outright:
A floating tag is the more extreme version of that — current by definition, on a
tag that can move per commit.
Severity: latent, not live
Checked 23 September 2026: every pin on the fleet today is numeric —
caddy:2,glitchtip/glitchtip:6.2,louislam/uptime-kuma:1,postgres:18-alpine,valkey/valkey:9-alpine,bbernhard/signal-cli-rest-api:0.100. All return a validtagLinesobject, sonothing is being misreported right now.
The bug bites the day someone adds
:latest,:main, or a date tag — which ishow it was found, while costing out a
getfider/fider:mainpin.What to do
Teach
compare()that it cannot answer, rather than letting silence read ashealth:
noterather than amber: a deliberate floating pin is a decision, not aregression. The point is that the table stops claiming an answer it does not
have.
Verification
Add the case to
deploy/test/inventory.test.tsand mutation-check it bothways: a non-numeric pin must get the flag, and a numeric pin must not. The
second half is the one that matters — a flag that fires on everything is as
useless as one that fires on nothing.
Moved to the Vikunja board as NEC-85: https://projectron.nerchure.com/tasks/85