[1.7.1] — 2026-05-04
Patch release stacking the post-v1.7.0 work: pipeline preview pane, Anthropic API integration, scrollable sidebar, dotenv loader, dynamic Active-companies list, CI workflow hardening.
✨ Pipeline preview pane
/#/pipelineoverhaul — left list + right preview pane. Click any URL to fetch a server-side proxied snapshot (GET /api/pipeline/previewstrips scripts/styles/tags, caps at 8 KB, validated throughisValidJobUrl). Live filter input, "In queue" counter, ⚡ "Evaluate first" header button. Inline ▶/✕ on every row plus full Evaluate / Open in tab / Delete on the preview pane. Stable test selectors viadata-url+.pipeline-row+.pipeline-row-deleteclasses. 8 new tests intests/pipeline-preview.test.mjs(mocked fetch, no upstream binding needed).
✨ Anthropic API integration — "Run live" everywhere
server/lib/anthropic.mjs— zero-dependency client for Anthropic Messages API (claude-sonnet-4-6 default, override viaANTHROPIC_MODEL). WhenANTHROPIC_API_KEYis set, every mode page (/#/deep,/#/project,/#/training,/#/batch,/#/contacto,/#/interview-prep,/#/patterns) renders an "⚡ Run live (Anthropic)" button as the primary action — clicking executes the prompt and renders Markdown back into the browser instead of handing off to Claude Code. Gemini stays as fallback when only its key is set. Manual mode still works with no keys at all. 8 new tests intests/anthropic.test.mjs.
🐛 CI / pipeline fixes
fix(api): tighten pipeline URL validator(FIX-M7) — now also rejects loopback hostnames, length <10 or >2000, whitespace inside URLs.fix(server): actually load .env so HH_USER_AGENT / GEMINI_API_KEY hints work— addedserver/lib/dotenv.mjs(35-line zero-dep loader) wired in at the top ofserver/index.mjs. The runtime hints in scanner code finally do something. 6 new tests.fix(ui): scrollable sidebar— 18 nav items in 6 groups overflowed shorter viewports..sidebarnow hasoverflow-y: autowith thin custom-styled scrollbars.fix(ui): make HH_USER_AGENT banner dismissible— then removed entirely from/scanonce we realized it was overkill. Health page check still surfaces it.fix(scan): Active companies list is now collapsible + filterable + grouped— 87 tags flat was overwhelming. Now a "▸ Active companies 87/71" toggle expands an ordered list (✓ API-backed first, ○ websearch second) plus a search filter.fix(test): isolate api.test.mjs + en-scanner.test.mjs from parent project— both now spin up tmp project roots so CI works without the parent checked out alongside web-ui.fix(workflow): publish-package version-match only on release events—workflow_dispatchfrom main no longer fails the tag/version check.fix(e2e): stable selector for pipeline row delete— restored anchor wrapper + addeddata-urlattribute so e2e suite is selector-stable.
📦 New REST endpoint
| Method | Path | Purpose |
|---|---|---|
GET
| /api/pipeline/preview?url=…
| Server-side proxy: returns visible-text snapshot of the URL (scripts/styles stripped, 8 KB cap), gated by isValidJobUrl.
|
📊 Stats after this batch
- Tests: 225 → 233 (8 more on top of v1.7.0).
- Test files: 25 → 26.
- E2E: 20 + 23 = 43 Playwright steps, all green.