inspector/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Cliff Hall 20e679bb1f
chore(release): bump to 2.7.0, audit clean, and fix sdk-watch suppression (#2379)
* fix: teach sdk-watch the `app/` author spelling so suppression works again

`normalizeLogin` lowercased a login and stripped a trailing `[bot]`, but the
installed `gh` reports this account as `app/github-actions` from
`gh issue list --json author`. The `app/` prefix survived, so
`isSweepAuthored()` returned false for every issue the sweep itself wrote, the
marker was never trusted, and the re-file check found nothing to suppress
against. The sweep filed the same ext-apps 2.0.0 issue three nights running
(#2325, #2332, #2348) before anyone noticed by hand.

The same predicate gates analysis-retry suppression and supersession notes, so
both were affected too — an analyzed issue could be re-queued for a fresh Opus
run every night.

Strip the prefix alongside the suffix. That widens nothing an outsider can
claim: `/` is not legal in a GitHub username, so no human account can normalize
onto `github-actions`, and the labels half of the check (`chore` +
`dependencies`, both write-access-only) is independent regardless.

Because the failure mode is silence, also guard the class rather than only its
instance: `sweepIssues` now reports any issue carrying this sweep's marker AND
its write-access-only labels whose author does not normalize onto
`AUTOMATION_LOGIN`. That combination cannot be produced by an outsider, and it
is exactly the signature a fourth spelling would present. It warns rather than
throws, so a cosmetic upstream rename does not take the nightly sweep down.

Tests cover all three known spellings plus a mixed-case form, five near-miss
logins that must stay rejected, and both halves of the split predicate.

Closes #2377

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: cliffhall <cliff@futurescale.com>

* chore(release): bump version to 2.7.0

Step 1 of the v2.7.0 release. The bump goes on `v2/main` before the milestone
merge (#2010), so the release lands on `main` with the version already correct
and `v2/main` is never left behind `main`.

`npm version minor --no-git-tag-version` — no tag here deliberately. The release
tag has to point at the merge commit on `main`, so tagging on `v2/main` would
create a tag on a commit that is never released.

`npm audit --audit-level=high` was run first across all five installs (root,
web, cli, tui, launcher) and reported zero vulnerabilities at every severity —
info through critical — so the bump sits on a tree that was checked and no audit
fixes were forced.

Closes #2378

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: cliffhall <cliff@futurescale.com>

* test: cover the drift guard through main(), not only as a unit (#2379 review)

`warnOnUnrecognizedAuthors` was unit-tested, but its call from `sweepIssues`
was not: deleting that line left all 65 tests green. So the guard against a
silent normalization drift could itself have become disconnected silently —
the exact failure mode it exists to prevent.

Two main-level cases, driven through the injected spawn:

- an issue carrying our marker and our write-access-only labels whose author is
  `apps/github-actions` (a spelling `normalizeLogin` has never seen) must
  produce the warning, and the refile it causes is asserted alongside it so the
  test shows the consequence rather than only the message;
- the three readable spellings must produce no warning AND must suppress the
  refile, because a guard that fires on the ordinary path is noise.

Deleting the `sweepIssues` call now fails 1 test rather than 0, and restoring
the original `app/` bug fails 5 rather than 4.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: cliffhall <cliff@futurescale.com>

---------

Signed-off-by: cliffhall <cliff@futurescale.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 23:22:38 -04:00
..
lib fix: address Copilot review round 1 (#2333) 2026-09-13 01:59:44 -04:00
dependabot-alerts.mjs chore(deps): address Copilot review round 15 on #2243 2026-09-04 09:26:20 -04:00
dependabot-alerts.test.mjs chore(deps): address Copilot review round 15 on #2243 2026-09-04 09:26:20 -04:00
dependency-refresh.mjs chore(deps): address Copilot review round 1 on #2243 2026-09-04 09:06:32 -04:00
dependency-refresh.test.mjs chore(deps): paginate the release list so the highest version is actual 2026-09-04 09:06:31 -04:00
gate-lease.mjs fix: report a gate-lease wait only when the run actually queued (#2369) 2026-09-14 08:39:56 -04:00
gate-lease.test.mjs fix: report a gate-lease wait only when the run actually queued (#2369) 2026-09-14 08:39:56 -04:00
install-clients.mjs feat: port CLI, TUI, and launcher from v1.5 into v2 (#1452) 2026-06-14 20:27:49 -04:00
install-smoke-browser.mjs fix(smoke): reject an empty SMOKE_BROWSER; test the installer's argument logic 2026-08-25 22:52:02 -04:00
install-smoke-browser.test.mjs fix(smoke): reject an empty SMOKE_BROWSER; test the installer's argument logic 2026-08-25 22:52:02 -04:00
pack-and-verify.mjs ci: drop the Firefox smoke job; keep the engines as an on-demand tool 2026-08-25 23:55:19 -04:00
run-engine-smokes.mjs fix(smoke): route the Chromium tier through ENGINE_SMOKES too 2026-08-26 08:55:51 -04:00
run-engine-smokes.test.mjs feat: queue concurrent local:gate runs on a machine-wide lease (#2339) 2026-09-12 22:00:33 -04:00
sdk-watch.mjs chore(release): bump to 2.7.0, audit clean, and fix sdk-watch suppression (#2379) 2026-09-15 23:22:38 -04:00
sdk-watch.test.mjs chore(release): bump to 2.7.0, audit clean, and fix sdk-watch suppression (#2379) 2026-09-15 23:22:38 -04:00
skill-eval.mjs chore: land the #2247 round-9 review findings on v2/main (#2322) 2026-09-11 08:22:16 -04:00
skill-eval.test.mjs feat(skills): address Copilot review round 3 on #2204 2026-09-04 20:28:37 -04:00
smoke-cli.mjs chore(scripts): build test-servers unconditionally from one shared helper 2026-08-25 00:57:48 -04:00
smoke-launcher.mjs refactor: self-validating clients, fast validate + separate coverage/smoke (#1504) (#1505) 2026-06-21 11:41:33 -04:00
smoke-tui.mjs chore: state the smoke-helper and CI wall-clock budgets (#2333) 2026-09-13 01:50:33 -04:00
smoke-web-app.mjs chore(scripts): rename the local pre-push gate off ci, and guard it out of CI (#2146) 2026-08-26 23:56:34 -04:00
smoke-web-browser.mjs fix: state every test-gate timeout instead of inheriting a library default 2026-09-12 08:32:34 -04:00
smoke-web-elicitation.mjs fix: state every test-gate timeout instead of inheriting a library default 2026-09-12 08:32:34 -04:00
smoke-web-tabs.mjs fix: state every test-gate timeout instead of inheriting a library default 2026-09-12 08:32:34 -04:00
smoke-web.mjs fix(smoke): await the server's exit before removing its catalog, and test it 2026-08-11 14:32:20 -04:00
verify-build-gate.mjs fix: address Copilot review round 4 2026-09-12 20:25:00 -04:00
verify-bundle-externals.mjs test(proxy): isolate proxy env per file; word the guard failure by candidate source 2026-08-23 23:00:28 -04:00
verify-bundle-externals.test.mjs test(proxy): isolate proxy env per file; word the guard failure by candidate source 2026-08-23 23:00:28 -04:00
verify-dep-lockstep.main.test.mjs chore: address Copilot review round 1 (#2226) 2026-09-05 16:09:44 -04:00
verify-dep-lockstep.mjs chore: address Copilot review round 3 (#2226) 2026-09-05 17:14:44 -04:00
verify-dep-lockstep.test.mjs chore: address Copilot review round 1 (#2226) 2026-09-05 16:09:44 -04:00
verify-format-coverage.main.test.mjs chore: address Copilot review round 20 2026-08-29 05:32:12 -04:00
verify-format-coverage.mjs chore: address Copilot review round 9 2026-08-29 03:04:03 -04:00
verify-skills-cli.mjs chore: address Copilot review round 17 2026-08-29 04:54:04 -04:00
verify-skills-cli.test.mjs chore: address Copilot review round 16 2026-08-29 04:40:48 -04:00
verify-skills.main.test.mjs feat: queue concurrent local:gate runs on a machine-wide lease (#2339) 2026-09-12 22:00:33 -04:00
verify-skills.mjs fix: address Copilot review round 4 2026-09-12 20:25:00 -04:00
verify-test-timeouts.mjs refactor: assert retry and asyncUtilTimeout at runtime, delete the source scanner 2026-09-12 15:58:19 -04:00
verify-test-timeouts.test.mjs refactor: assert retry and asyncUtilTimeout at runtime, delete the source scanner 2026-09-12 15:58:19 -04:00
verify-typecheck-coverage.main.test.mjs Merge origin/v2/main: move the #1939 npx fix into the shared tsc-program lib 2026-08-16 17:07:50 -07:00
verify-typecheck-coverage.mjs Merge origin/v2/main: move the #1939 npx fix into the shared tsc-program lib 2026-08-16 17:07:50 -07:00
verify-typecheck-coverage.test.mjs chore(scripts): derive dep-lockstep candidates from what enters each tsc program 2026-08-16 12:17:15 -04:00