NEC-119: The directory report is a list, not a diff: no baseline of accepted findings #195

Merged
nectenda-agent merged 3 commits from worktree-nec-119-the-directory-report-is-a-list-not-a-dif into main 2026-09-27 10:34:18 +01:00
Collaborator

Task: NEC-119 — https://projectron.nerchure.com/tasks/119

pnpm lint printed eleven deliberate warnings on every run, so a new warning arrived as a twelfth line and exited 0 — how 0.2.0's error went unseen. Suppression is not possible: the community directory reports an eslint-disable of its own rules as an Error (NEC-118). lint-register.json, at the repository root where the directory never scans, lists each accepted finding as tool, rule, file and count with its reason; scripts/lint-register.mjs runs after eslint and stylelint in pnpm lint and fails on any finding the register does not accept and on any stale entry. The linters' own reports are unchanged. Mutation-checked: 11 unit-level mutations all caught; on the real tree a second fetch in client-version.ts, fetch in a new file, a deleted register entry, a raised count and a site removed from code each fail the check. Ride-along NEC-136 corrects the releasing.md refusals row for the two Vault.trash sites.

Spec: docs/changes/NEC-119-lint-register/spec.md

Also fixes NEC-136: releasing.md says both Vault.trash sites handle other vaults' deletions; one is freeing server space

Changelog

NONE

Task: NEC-119 — https://projectron.nerchure.com/tasks/119 pnpm lint printed eleven deliberate warnings on every run, so a new warning arrived as a twelfth line and exited 0 — how 0.2.0's error went unseen. Suppression is not possible: the community directory reports an eslint-disable of its own rules as an Error (NEC-118). lint-register.json, at the repository root where the directory never scans, lists each accepted finding as tool, rule, file and count with its reason; scripts/lint-register.mjs runs after eslint and stylelint in pnpm lint and fails on any finding the register does not accept and on any stale entry. The linters' own reports are unchanged. Mutation-checked: 11 unit-level mutations all caught; on the real tree a second fetch in client-version.ts, fetch in a new file, a deleted register entry, a raised count and a site removed from code each fail the check. Ride-along NEC-136 corrects the releasing.md refusals row for the two Vault.trash sites. Spec: `docs/changes/NEC-119-lint-register/spec.md` Also fixes NEC-136: releasing.md says both Vault.trash sites handle other vaults' deletions; one is freeing server space ## Changelog NONE
pnpm lint printed eleven warnings on every run that are deliberate refusals,
so a twelfth arrived unnoticed and exited 0. Suppression is not an option: the
community directory reports an eslint-disable of its own rules as an Error
(NEC-118). So lint-register.json, at the repository root where the directory
never scans, lists each accepted finding as tool, rule, file and count with its
reason, and scripts/lint-register.mjs fails on anything it does not name and on
any entry that no longer matches.

It runs after eslint and stylelint rather than in place of them, so their
reports stay exactly what the directory prints. Counts rather than line numbers
catch a second site in an accepted file without churning on unrelated edits.

Task: NEC-119

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XQXYhNEZJ4HGzKfS6aaPfe
Review found the register check linting one hard-coded stylesheet while its
comment claimed a second one would fail. It would not have: stylelint would
print the new file's warnings, exit 0, and the register would never see them.
The files are now read from package.json's lint script, and an empty list
throws rather than linting no CSS. Messages with no rule id are labelled
"(no rule)", since unused-disable warnings land there as well as parse
failures.

Task: NEC-119

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XQXYhNEZJ4HGzKfS6aaPfe
Say which Vault.trash site is which in the refusals table
All checks were successful
Release note / release-note (pull_request) Successful in 16s
CI / build (pull_request) Successful in 4m48s
CI / e2e (pull_request) Successful in 5m24s
CI / promote (pull_request) Has been skipped
CI / e2e (push) Successful in 5m30s
CI / build (push) Successful in 5m37s
CI / promote (push) Successful in 32s
c091b71606
The table said both sites run for deletions arriving from other vaults. Only
obsidian-vault.ts does; main.ts removes a local copy when the user frees
server space. The refusal holds for both, for the same reason, and the row now
says so.

Task: NEC-119
Ride-along: NEC-136

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XQXYhNEZJ4HGzKfS6aaPfe
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Nectenda/nectenda!195
No description provided.