Skip to content

MS5 (QA) — E2E smoke, BM25 coverage, cross-platform CI#7

Merged
SheeshDarth merged 5 commits into
masterfrom
feature/ms5-qa
Jul 15, 2026
Merged

MS5 (QA) — E2E smoke, BM25 coverage, cross-platform CI#7
SheeshDarth merged 5 commits into
masterfrom
feature/ms5-qa

Conversation

@SheeshDarth

Copy link
Copy Markdown
Owner

MS5 (Quality & Reliability), done in three slices.

What's in it

  1. E2E pipeline smoke test (export test) asserting the full chain reaches the exported artifact: title → learning map → deep review → explain-back questions → DSA concepts → a submitted answer. This also closed a real gap: the Senior Review (deep review) was computed and stored but never exported — the exported study doc was missing the headline analysis. Added a compact Senior Review section (overall grade, per-lens grade table, top findings).
  2. Broadened coverage — the BM25 code search (tokenization, IDF, TF-normalization, ranking) that powers the learning-map search box had zero tests. New self-contained test covers indexing, relevance ranking, stopword filtering, and rebuild-replaces semantics.
  3. Cross-platform CI — the gate now runs on Windows + Linux via a matrix (fail-fast off). Windows is the divergent platform (backslash paths, native better-sqlite3, no symlinks); macOS deferred (fs/path-equivalent to Linux, 10× runner cost).

Suite: 24/24. Local gate (lint + typecheck + build + test) green. This PR's CI is the first run of the new Windows job.

🤖 Generated with Claude Code

SheeshDarth and others added 5 commits July 15, 2026 11:48
…t (MS5)

MS5 (QA), slice 1. The critical path is import → analyze → deep-review → export,
but the Senior Review (deep review) was computed and stored yet never exported —
the exported study artifact was missing the headline analysis. And nothing tested
the export stage at all.

- export.service: new compact "Senior Review" section — overall grade, a per-lens
  grade table (skipping absent frontend/backend), and the five worst findings.
  Reads the already-stored seniorReviewJson; renders nothing for manual maps.
- tests: E2E smoke test asserting the whole chain reaches the exported markdown —
  title, learning map, deep-review grades, explain-back questions, DSA concepts,
  and a submitted answer. Suite 23/23.

Gate: lint + typecheck + build + test all green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
MS5 (QA), slice 2 — broaden coverage. The BM25 code search (tokenization, IDF,
TF normalization, ranking) that powers the learning-map search box had zero
tests. New self-contained test: index build + hasSearchIndex, relevance ranking
(auth query ranks the auth file first, descending score order), stopword/short-
token filtering, and rebuild-replaces-not-accumulates. Suite 24/24.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
MS5 (QA), slice 3 — cross-platform CI. Local-first + cross-platform is a core
promise, but the gate only ran on Linux. Windows is the platform that actually
diverges (backslash paths, native better-sqlite3 build, no symlinks), so run
lint + typecheck + build + test on a windows-latest runner too via a matrix.
fail-fast off so both platforms report independently; npm audit stays Linux-only
since advisory data is platform-independent.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…2025 image)

The new windows-latest image (windows-2025) ships a Visual Studio that node-gyp
10 — bundled with Node 20 — can't detect ("unknown version undefined at
...\Visual Studio\18"), so better-sqlite3's source-build fallback fails when no
prebuilt binary is available. Exactly the cross-platform break the Windows leg
was added to catch. Pin to windows-2022 (VS 2022, detected correctly). Linux
already passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@SheeshDarth
SheeshDarth merged commit a0975a5 into master Jul 15, 2026
2 checks passed
@SheeshDarth
SheeshDarth deleted the feature/ms5-qa branch July 15, 2026 06:29
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