Skip to content

Quality baseline + release 1.0.2 (ESLint/Prettier, qs security pin)#50

Merged
Evilander merged 6 commits into
masterfrom
chore/eslint-prettier-safety-net
May 29, 2026
Merged

Quality baseline + release 1.0.2 (ESLint/Prettier, qs security pin)#50
Evilander merged 6 commits into
masterfrom
chore/eslint-prettier-safety-net

Conversation

@Evilander
Copy link
Copy Markdown
Owner

Summary

Establishes an enforced engineering-quality baseline and cuts 1.0.2 (maintenance/quality release — no runtime behavior change).

Security

  • Pin transitive qs to ^6.15.2 via overrides to resolve GHSA-q8mj-m7cp-5q26 (moderate DoS via @modelcontextprotocol/sdk → express@5), disclosed after the 1.0.1 cut. Production npm audit is clean again.

Tooling + code quality

  • Flat-config ESLint (type-checked typescript-eslint on src/ + mcp-server/) + Prettier + .editorconfig, matched to house style. New scripts: lint, lint:fix, format, format:check.
  • lint + format:check wired into CI (Ubuntu matrix + Windows) and all release gates.
  • All 216 lint findings resolved at the source (no suppression): REST handlers read c.req.json<RouteBody>() instead of Hono's any; the three MCP server params typed as McpServer; local embedding pipeline typed structurally; EventTypeLike; error cause on rethrows; dead imports/bindings removed.
  • One-time Prettier normalization (133 files), recorded in .git-blame-ignore-revs.

Release

  • Cut 1.0.2 across all version surfaces + accurate CHANGELOG; README documents the lint/format workflow.

Verification

typecheck ✓ · eslint ✓ · format:check ✓ · build ✓ · prod npm audit 0 vulns ✓ · smoke ✓ · pack ✓ · 783/798 tests (remaining fails are the known paper-artifact coupling, env-specific to local LaTeX).

🤖 Generated with Claude Code

Evilander and others added 5 commits May 28, 2026 22:13
- Add flat-config ESLint (type-checked typescript-eslint on src + mcp-server),
  Prettier, and .editorconfig matched to the existing house style; add
  lint / lint:fix / format / format:check scripts.
- Wire `npm run lint` into CI (Ubuntu matrix + Windows) and all release gates
  so the enforced baseline cannot regress.
- Pin transitive `qs` to ^6.15.2 via overrides to resolve GHSA-q8mj-m7cp-5q26
  (moderate DoS) disclosed after the 1.0.1 cut. Production `npm audit` is clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Brings the tree to zero lint errors under the new type-checked config with no
rule suppression:

- routes.ts: read request bodies via c.req.json<RouteBody>() against a completed
  wire-contract type instead of Hono's default `any` (one root cause behind 123
  findings); behavior-preserving (http-api tests stay green).
- Type the three MCP `server: any` seams as McpServer (kept lazy via import type).
- Type LocalEmbeddingProvider._pipeline structurally; cast once at the untyped
  library boundary instead of propagating `any`.
- EventTypeLike for the `EventType | string` collapse; JSON.parse/return casts;
  attach error `cause` on rethrows; drop dead imports/bindings in tests/scripts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
One-time normalization to the new Prettier config (single quotes, semicolons,
2-space indent, trailing commas, 100-col). Pure formatting — no behavior change;
lint, typecheck, build, and the full test suite are unchanged. This commit is
listed in .git-blame-ignore-revs so it does not pollute `git blame`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add `npm run format:check` to CI (both jobs) and release:gate /
  release:gate:sandbox / release:gate:paper, after lint.
- Add .git-blame-ignore-revs pointing at the formatting commit so blame stays
  meaningful (GitHub honors it automatically; locally run
  `git config blame.ignoreRevsFile .git-blame-ignore-revs`).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Maintenance and engineering-quality release. No runtime behavior change.

- Bump version to 1.0.2 across package.json, package-lock.json,
  mcp-server/config.ts, and python/audrey_memory/_version.py.
- CHANGELOG: accurate 1.0.2 notes — qs security pin (GHSA-q8mj-m7cp-5q26) and
  the ESLint/Prettier tooling + source-level lint cleanup.
- README: document the lint/format workflow and enforced quality gates.
- Track the released version in the release-cut idempotency / readiness tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@socket-security
Copy link
Copy Markdown

socket-security Bot commented May 29, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​typescript-eslint@​8.60.01001007498100
Addednpm/​globals@​17.6.01001008693100
Addednpm/​eslint-config-prettier@​10.1.810010010087100
Addednpm/​@​eslint/​js@​10.0.110010010088100
Addednpm/​eslint@​10.4.08910010095100
Addednpm/​prettier@​3.8.3901009793100

View full report

The existing .gitattributes forced LF for .js/.json/.md/.svg/.yml but omitted
.ts and .mjs, so the Windows CI runner checked those out as CRLF (default
autocrlf) and `prettier --check` (endOfLine: lf) failed on every src/*.ts and
scripts/*.mjs file. Add .ts/.cjs/.mjs/.yaml and binary-asset markers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Evilander Evilander merged commit ceed2f5 into master May 29, 2026
11 checks passed
@Evilander Evilander deleted the chore/eslint-prettier-safety-net branch May 29, 2026 03:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant