Skip to content

v1.9.0 — Frontend train (KIE meta-row fix + giant-function splits)

Choose a tag to compare

@livezingy livezingy released this 30 Sep 05:00
· 214 commits to main since this release

Release 1.9.0 notes

Tag: v1.9.0
Date: 2026-09-20
Train: Frontend batch — scope, per-item evidence and acceptance records live in docs/architecture/v1.9-roadmap.md
Version: APP_VERSION 1.8.4 → 1.9.0

Summary

v1.9.0 is a frontend-only batch. S1 fixes the KIE metadata rows shown on non-KIE tasks, S2 splits six giant
functions by module (verbatim moves, zero behaviour change), S3 closes as a conclusion-only evaluation, and S4
wires-or-retires the two registered orphans. No backend contract change. The train deliberately adds no cloud
GPU gate, because it has no GPU-dependent work (recorded as an honest note in the roadmap).

Fixed

  • P-007 — non-KIE tasks no longer render KIE metadata. The result panel's KIE confidence / KIE fields
    summary rows now key off kie_confidence_source: the backend guarantees that field is non-empty only when
    attempted && succeeded, so layout tasks and the runtime_error / skipped_doc_type failure paths no longer
    show a false 0%. The KIE warning block (failure / skip reason) still renders per kieAttempted, because there
    it carries real information.
    Coverage added in the same batch: vitest 4 states + 1 e2e case, including an e2e mock quality preset extension —
    the quality panel's visible render path previously had zero e2e coverage.

Removed

  • Floating progress card (D11) retired: the #floatingProgressCard markup in index.html and its styles.css
    rules are gone. The card had had no JS driver since v1.8.2 (its module was never imported and never loaded by the
    browser) — dead UI. The only user-visible effect is one block of markup that never displayed.
  • modules/utils/geometry.js retired: its only production importer had already been removed as a dead import in
    the v1.8.3 clean-up, and its five geometry helpers had no remaining caller. The unit tests that covered it only
    (paper coverage over dead code) were removed with it.

Internal (no product behaviour change)

  • Six giant functions split by feature (result-panels/{text,tables,figures}, overlay-render, pipeline/run) —
    verbatim moves, zero behaviour change. The pipeline domain gains a same-domain sibling task-socket.js holding
    the WebSocket / fallback-polling implementation (forced by the file line budget; see roadmap §S2 for the ruling).
  • Governance / CI entries are deliberately not merged into this section (2026-09-20 merge policy: the governance
    batch had already been staunched by v1.8.4). The CI and gate changes made during this train (vitest into CI,
    lint F6/F7 guards, the tsc evaluation conclusion) are recorded in roadmap §S0 / §S3 and the commit history.

Verification

Layer Result
vitest suite runs inside the required lint job; green on the landing tree
e2e Playwright suite green
Gate audit_agent_ops.py 0 error / 0 warning

The full per-item acceptance command list and the adversarial section are in docs/architecture/v1.9-roadmap.md.

Upgrade / migration

  • APP_VERSION is now 1.9.0 (reported by /health and as the OpenAPI version).
  • No schema, API or configuration migration.