T
Sign in

QA-GAPS.md — overnight QA ledger (2026-09-05)

QA-GAPS.md — overnight QA ledger (2026-09-05)

Every documented item checked and its disposition. Sources: the four doc audits (screens/fields · journeys/roles · reports/prints · engine/ architecture) + the 11-role live operation simulation. Statuses: DONE = built/deployed/regression-tested · OWNER = needs the owner's input/decision · HW = needs hardware · DEF = documented deferral. The app is green on the 51-step journey suite (scripts/journey-test.ts), 53/53 unit tests, all deploys via deploy.sh.

Security & correctness (simulation-critical) — DONE

  • Anonymous form-action writes sealed (hooks POST auth gate; public: /api/, /c/, /signin). Role-sensitive routes gated (ROLE_PAGES incl. approvals/recons/guard/transporter/loomgate + order/yarn/production).
  • dispatch roll transition real (r.rollId + .run()); .run() explicit on every update chain (8 actions repaired after a regex slip — regression caught by the suite).
  • Loomgate meters parsed (payload TEXT json); phantom-looms still accepted (owner decision: device registry?) — see DEF.
  • /c/hi statement number (no "undefined"); /c/gp inbound confirm no longer lies "delivered"; approvals show contract numbers; transporter due-list includes partial; search newest-first; home quick-add role filtered; partial pickups no longer vanish.

Prints — DONE (formats from REPORTS §2.1 + screenshots samples)

gatepass (per-kind titles, GSTIN, goods table, sigs) · hishob In/Out/Consumption (8 legs, standard-rate consumption, approval clause) · dispatch/packing · beam card (tracking columns) · checking report · tippan sizing program · contract/SO · reconciliation statement. All render the COMPANY head (src/lib/company.ts — OWNER: set COMPANY.gstin once).

Journeys — DONE except listed

Owner (boards, approvals, hishob, exceptions, reports) · Planner (contracts, tippan issue, due-GPs, recon entry) · Godown (booking, receipt→lot, allocation) · Guard/Transporter (due-lists, exit/pick, vehicle OCR) · Checker (grade incl. R→reject, beam-scoped rolls, WIP bucket, report) · Dispatch (F1 plan→F2 load→deliver, no-redispatch) · Sales (leads→SO, samples, quote) · Runner (docs/pickup codes + sample courier — ack-photo & count-check loop DEF §34 GAP-23/26/27) · Accounts (reports/dumps; Tally OWNER/gate) · External parties (confirm links gp/hi).

Still documented-but-open (each cited)

  • Costing engine gaps: warping cost input (COSTING §6b per-warp sizing/GST toggles); /quote now surfaces the engine. DEF.
  • Weaving: loomgate telemetry live; beam start/end knot/gat (D5/C6) and weft-issue (D2) screens DEF Phase-2 data; planning board (D1) DEF (board pln flagged ready:false honestly).
  • E2 lumps→bales (no bale table) — DEF (needs owner's bale rules, BUSINESS.md:47).
  • Owner approval matrix (SO/booking creates to open, amendments ungated) — partial: recon/hishob gated; broader matrix DEF §30.
  • BRIDGE import machinery (external_id, ledger, parsers) — OWNER: blocked on the old-software table exports (PLANNING §13 shelf / BRIDGE contracts "draft"); upload bins exist.
  • Notifications (due POs, pending samples) — DEF Phase 5.
  • Valuation FIFO/avg — OWNER (deferred to go-live, §56).
  • Numbering sequences, grade pricing, promise-vs-target, GST per supplier, LTOL/UTL, cal-wt — OWNER (shelf §13).
  • Android APK builds on any machine with Android Studio (android-capture/README); keystore OWNER.
  • Company GSTIN on prints — OWNER (one line in src/lib/company.ts).
  • Party phone numbers for WhatsApp buttons — OWNER (data entry).
  • Record chat / AI report bot / dump-station UI / SmartTable-on-lists — density/batch — DEF (BOARDS-A §2.5/§2.10, §50, §51.5).
  • Runner ack-photo, sample sticker print, count-check — DEF §34.

Regression harness

bun scripts/seed-e2e.ts · bun scripts/seed-users.ts · bun scripts/journey-test.ts (51 steps, live 4102, session + Origin + DB asserts + print markers). Owner's own check path: log in as each role (see seed-users) and walk the board.