[1.264.0] — 2026-10-31
Added
- Inline tracker status edit — every
#/trackerrow's status badge is a compact<select>of the canonical stages (fromGET /api/tracker/stages, never a hardcoded whitelist).POST /api/tracker/statusrelays the parent's canonicalset-status.mjsunder theapplications.mdlock (state whitelist viastates.mjs,--dry-run/--notepassthrough, fail-soft 502 with sanitized detail, argv-array spawn). Success updates the row in place (tone class + tab counts, focus kept); failure reverts and toasts. Rows the relay cannot address — a hand-edited unknown status, a backfill sentinel#— keep the read-only badge (route-review LOW fixes; reviewer: no HIGH/MED findings). - Server warnings surfaced on every AI page —
evaluate,deep,auto-pipeline(page and modal),career-plan,market,cv-studio(humanize + tailor) now render the server'swarningsarray (output-token truncation, language drift, date corrections) as abadge-warnband (role="status"); the auto-pipeline modal no longer drops the done-frame warnings. New keyllm.truncatedNotice×19. - Coverage wave (+111 tests) —
routes/map.mjs100/94.9,geocode.mjs96.3/92.9,content.mjs99/84.9,networking.mjs96.4/89.1,sources/habr.mjs100/98.2 (newtests/cov-*-routes.test.mjs×3,tests/sources-habr.test.mjs); branch floor held at ≥ 90 %. - Linear CAR-191…216 closure bundle (
docs/reviews/2026-10-30-linear-car191-216-closure-bundle.md) — paste-ready owner close-out with per-CAR commit SHAs and evidence comments.
Fixed
- Trudvsem scan source — an empty page (
results: {}, also "past the end") no longer kills the whole scan (clean zero rows); API error envelopes (HTTP-200 withstatus: 500) throw with the API's own text; pagination walks record offsets (was page-index — pages silently duplicated, ~52 vacancies instead of hundreds); the walk stops before the API's deep-offset failure zone (offset × limit ≥ 10000). Live end-to-end verified. - habr — titles/companies are tag-stripped after entity decoding (hh.mjs parity):
<script>in a card title can no longer reach scan rows as live markup; legitimate>>in titles survives. - PUT /api/profile (raw path) — a
candidate:block without a non-emptyfull_nameis refused, same line as the fields-merge path (it used to persistfull_name: null). - Hints truthfulness —
.docremoved from the CV upload accept list andcv.uploadHint×19 (the parser never supported it);config.openaiModelHint×19 namesgpt-5(the server maps any*-codexid to it);config.anthropicModelHint×19 and the Anthropic default now mirror the parent's tiers — defaultclaude-sonnet-5-5, premiumclaude-opus-5-5. - Claude Code docs link →
code.claude.com(the olddocs.anthropic.com/en/docs/claude-codeURL TypeErrors in the links gate). - help ×19: the Row-density bullet is gone (the toggle left the UI in v1.263.0) and 18 broken
**bold**span families repaired — plus the renderer-leak class fixed ×19 (second blank line after every table-before-paragraph; pipe glyph out of bold cells): 0 literal**in render across all 19 help bundles.
Notes
- The Anthropic default model changed to
claude-sonnet-5-5(the parent's standard tier). Deploys that relied on the old silent default (claude-sonnet-4-6) upgrade automatically — pinANTHROPIC_MODELin.envto opt out. - Deliberately not done: the two LOW review nits left open by design (inline select does not mirror the kanban
movesReadydegradation — honest toast on every failure is the chosen behaviour; thecode: 'timeout'branch stays covered by the fake-writer contract, not a >30 s test). CAR-141 (demo video) remains the owner's. - help ×19 got the post-release prose pass (density bullet out, renderer-leak class fixed) on
mainafter v1.263.0 shipped — this release is the first tag carrying it.
Tests 6905 → 7041 (+136) · Playwright 176 (173 pass / 1 opt-in skip) · coverage 98.5 % line / 90.1 % branch · registry unchanged: 123 sources = 118 EN + 5 RU · 118 adapters.