docs(roadmap): record measured performance and integration receipts
This commit is contained in:
@@ -9,6 +9,9 @@
|
||||
- Release published and read back `e73681008ae6a8919de777d2db93d566b683dceb` for offline rollback, `cedf33a358e4b8df202c0f7038313bba8e67de61` for off-host copy failure handling and `24a629972ed94f3df725f197689efe2ca3976603` for atomic monthly completion. Latest release branch runs passed 12 backup, five rollback, four hosted quarantine checks and Bash syntax. No real restore, off-host transfer, deployed system or host test was run. Post-rollback health and actual encrypted restore remain open.
|
||||
- All 18 performance areas are classified in the existing TODO. [Performance baseline](PERF_BASELINE.md) separates export, cold synthetic browser and historical MariaDB evidence. Isolated PERF changes were published and read back at `21db35d2b965fbda2ddf5b419ac2646fcae05517` (Companies, 16 tests, two consumers share one GET) and `97d06180b7f41f8cd9d93c30b373ff3e8eac67b2` (Jobs, 34 tests and locale-switch duplicate GET 1→0). Review exact deltas before A3 integration.
|
||||
- A3 PERF page correspondence `bca750446f1069eb55d648be838be192d70c2d30` published and read back. 36 selected tests passed. Captured SQLite SQL returned 250→15 and 2,500→15 groups on a 15-item page. MariaDB execution and latency remain open.
|
||||
- A3 Companies integration `6bfdbd9db72e06f18f8aa9aaf57b025bff55ce5b` published and read back. Input and output hook/test files matched the isolated patch's parent and result respectively. 37 selected integration-branch tests, type-check and scoped lint passed.
|
||||
- Isolated frontend PERF-09/15 `85ebbd9f65cba700ecbeae26126a137caa0e7f08` published and read back on `codex/perf-jobtable-chunk`. Landing and Login each load 241,317 fewer raw JS bytes across the cold fixture runs. Jobs loads 29,311 more bytes. 74 tests, type-check, scoped lint, export and auth/keyboard checks passed. Next review A3 compatibility and compare on throttled/mobile conditions before integration.
|
||||
- The independent Phase 10 reviewer reached the agent usage limit before returning a result. Phase 10 acceptance is still open. Existing full local results and the frozen source remain available.
|
||||
|
||||
## Roadmap TODO and audit search
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
10 November 2026.
|
||||
|
||||
1. Continue P10-05 qualification on the frozen cleanup branch. CLEAN-20 is published. Reconcile full local regression, source-bound evidence and the 57 preservation groups. Further removal requires its own proven candidate and approval.
|
||||
2. Continue approved A3-IM10 from published `327d99df` on `codex/a3-ui-10`. Recent Audit filters and details and compact Admin Users actions are qualified in scoped fixtures. Next: compact application actions, remaining correspondence/Settings/import states and real connected workflow evidence. Prepare final Gate F once the visual, workflow and regression evidence is reviewable.
|
||||
2. Continue approved A3-IM10 from published `6bfdbd9d` on `codex/a3-ui-10`. Recent Audit filters/details and compact Users actions are qualified in scoped fixtures. Next: compact application actions, remaining correspondence/Settings/import states and real connected workflow evidence. Prepare final Gate F once the visual, workflow and regression evidence is reviewable.
|
||||
3. Continue independently eligible localisation on its isolated branch. The 188 historical dynamic calls are accounted for. Prioritise contextual display coverage and automated locale checks. Native and additional locale publication gates remain open.
|
||||
4. Four desktop/mobile launch concept pairs are published at `ccb11494`. Retain owner selection before refinement and final approval before implementation. RR-11 and scoped RR-12/13 offline checks/fixes are published through `24a62997`. Actual recovery, integrated security and production remain separately gated.
|
||||
5. Keep Product Review findings provisional until Phase 10 acceptance. Reuse the published GJ-00 pack. GJ-01 awaits the accepted predecessors, implementation scope and provider rights.
|
||||
6. Continue PERF from the source census and comparable baseline. Carry the page correspondence delta into MariaDB plan comparison when isolated. Review the Companies and locale Jobs deltas and measure cold bundle ownership. Keep replica, CDN, production, migrations and protected removal gated.
|
||||
6. Continue PERF from the source census and comparable baseline. Carry the page correspondence delta into an isolated MariaDB plan comparison. Review the isolated Jobs locale and route-chunk deltas for A3, then repeat throttled/mobile measurements. Keep replica, CDN, production, migrations and protected removal gated.
|
||||
|
||||
Use [the complete roadmap TODO](ROADMAP_TODO.md), [the latest checkpoint](LATEST_CHECKPOINT.md) and branch-specific handoffs to resume. The orchestrator remains paused. Keep pre-p10-ux and unrelated work intact. Publication belongs on the relevant development branch.
|
||||
|
||||
@@ -18,7 +18,9 @@ No source maps were emitted. The largest exported JS chunk is 550,002 raw bytes
|
||||
|
||||
Cold loopback Chromium 151 at 1366×900 used fresh contexts, blocked external fonts and fixture responses with 15 Jobs. Observed JavaScript resources were 18 files / 2,005,036 raw bytes / 591,192 estimated gzip bytes for both `/` and `/login`, and 20 / 2,033,779 / 601,065 for `/jobs`. This includes dynamic client requests. Compression estimates still exclude headers and deployed encoding. There was one initial paged Jobs GET and one duplicate on EN→NB. The published fix `97d06180b7f41f8cd9d93c30b373ff3e8eac67b2` kept one initial GET and reduced the extra GET from one to zero under the same fixture. 34 tests, type-check, scoped lint and export passed. See `docs/i18n/JOBS_LOCALE_READS.md` on `codex/perf-jobs-locale-read`. It is isolated from A3.
|
||||
|
||||
The single unthrottled samples do not establish a timing distribution or field vitals. Repeat on the exact A3 candidate with identical cache, network and CPU settings, routes, browser and fixture sizes. Use route request logs to separate shell bytes from lazy chunks. Use the Turbopack analyzer to trace ownership before moving an import and React Profiler to find costly commits. [Next.js bundling](https://nextjs.org/docs/pages/guides/package-bundling) · [React Profiler](https://react.dev/reference/react/Profiler)
|
||||
The isolated JobTable split `85ebbd9f65cba700ecbeae26126a137caa0e7f08` used three paired cold runs. Landing and Login each fell from 2,005,009 to 1,763,692 raw JS bytes, a reduction of 241,317 bytes or 12.0%. Estimated gzip fell by 71,386 bytes per route. Jobs added three requests and 29,311 raw bytes. Its usable-row medians were 1,014 and 939 ms in this small local sample. These timings establish no repeatable throttled or field gain. 74 tests in six suites plus type-check, scoped lint, build, authenticated Jobs/Trash keyboard and anonymous route guard passed. See `docs/i18n/JOBTABLE_ROUTE_CHUNK.md` on `codex/perf-jobtable-chunk`. This remains isolated from A3.
|
||||
|
||||
Repeat on the exact A3 candidate with identical cache, network and CPU settings, routes, browser and fixture sizes. Use route request logs to separate shell bytes from lazy chunks. Use the Turbopack analyzer to trace ownership before moving an import and React Profiler to find costly commits. [Next.js bundling](https://nextjs.org/docs/pages/guides/package-bundling) · [React Profiler](https://react.dev/reference/react/Profiler)
|
||||
|
||||
## Backend and database baseline
|
||||
|
||||
|
||||
@@ -22,6 +22,6 @@ Updated 10 November 2026. This register records direct-chat work. See [the conti
|
||||
| SECURITY-AUDIT-01 | OFFLINE PREFLIGHT PARTIAL | Approved root policy published at `de3d5031`. Formal integrated scan requires a completed application baseline and applicable environment/cost approval |
|
||||
| RELEASE-READINESS-01 / discovery and RR-11–13 | PARTIAL | Parser fix and offline rollback, off-host copy failure and monthly completion guards published through `24a62997`. Isolated rollback, restore and off-host encryption evidence remain open |
|
||||
| Release stages 2–7 baseline, qualification, remediation, requalification, rehearsal, final acceptance | BLOCKED | Final release candidate/prerequisites not accepted; each stage needs actual applicable environment and source-bound evidence |
|
||||
| PERF-01 / 18 performance areas | IN PROGRESS | Added to the existing roadmap TODO. Measure comparable local baselines first. Replica, CDN, protected dependency and production decisions retain their gates |
|
||||
| PERF-01 / 18 performance areas | IN PROGRESS | Initial source classifications and isolated export/browser baseline recorded. A3 page query and cache changes published. Isolated Jobs request and route splitting have measured results and await integration. MariaDB and runtime timing remain open |
|
||||
|
||||
Implemented, tested, accepted, published and production-ready are separate. Production is NO-GO. Historical counts are not fresh executions. See [blockers](BLOCKERS.md), [owner decisions](OWNER_DECISIONS.md), [completed work](WORK_COMPLETED.md) and [next actions](NEXT_ACTIONS.md).
|
||||
|
||||
@@ -130,7 +130,7 @@ Source: owner PERF-01 prompt and Full-Roadmap-Autonomy Addendum, 10 November 202
|
||||
| ID | Status, priority and effort | Next action and acceptance boundary |
|
||||
| --- | --- | --- |
|
||||
| PERF-BASE | PARTIAL · high · medium | Export inventory measured on isolated Next.js source `4c12f769`. Freeze the exact A3 runtime and synthetic workloads. Capture actual transfer, route and interaction timings, API latency/bytes/error/throughput, query plans/counts and resource/queue signals where runnable. |
|
||||
| PERF-01 | PARTIAL · high · medium | Isolated `21db35d2` fixes stale Companies completions after invalidation/relogin and correctly shares one GET across two pending consumers. Review A3 integration. RulesEngine 30-second owner cache and post-save invalidation remain separate. Avoid shared authenticated caching. |
|
||||
| PERF-01 | PARTIAL · high · medium | `21db35d2` fixes stale Companies completions after invalidation/relogin and correctly shares one GET across two pending consumers. Integrated in A3 at `6bfdbd9d` with 37 selected tests. RulesEngine 30-second owner cache and post-save invalidation remain separate. Avoid shared authenticated caching. |
|
||||
| PERF-02 | GATED topology · low · high | Nginx and compose use a singleton backend. Liveness/readiness and leased user operations exist, while other workers and session dependencies are local. Keep singleton until measured capacity warrants change. Compare one and two replicas in an isolated environment with one migration, backup and scheduler owner. Require cross-node auth, failover and no duplicate jobs. |
|
||||
| PERF-03 | PARTIAL · high · high | `JobTrackerContext` indexes tenant jobs, follow-ups, documents, revisions, queues, notifications and saved searches. Check actual MariaDB plans for default application sorting, agenda, Audit timestamp and due operations on representative tenants. Compare rows examined, p95 and write cost. Migration gates remain. |
|
||||
| PERF-04 | PARTIAL · medium · medium | `app/layout.tsx` and `public/` ship a 147,708-byte ICO and PWA icons. Measure requested assets before changing icon variants. CV thumbnails already viewport-gate sandboxed iframes. Qualify responsive launch image sizes, layout and rights with the Launch gate. Preserve original uploads and evidence. |
|
||||
@@ -138,7 +138,7 @@ Source: owner PERF-01 prompt and Full-Roadmap-Autonomy Addendum, 10 November 202
|
||||
| PERF-06 | PARTIAL · high · medium | `AnalyticsService` already projects counts, date groups and bounded inputs. Measure serial counts and group scans before combining SQL or caching. Career completeness is computed from the current profile. Preserve null/deleted/stage/date semantics and mutation consistency. |
|
||||
| PERF-07 | PARTIAL · high · medium | Ordinary application paging published at `bca75044`. The correspondence aggregate now returns 15 groups for a 15-row page, down from 250 and 2,500 in the fixtures. 36 tests passed. Users fixed two readers at 75 rows, Documents has count/page SQL, and Audit/Processing batch projections. Profile MariaDB plans and remaining query growth. |
|
||||
| PERF-08 | PARTIAL · high · low | JobTable/Kanban already debounce 250 ms, CV preview 300 ms with sequence protection, Discover submits explicitly. The isolated Jobs fix `97d06180` reduced the extra locale-switch GET from one to zero. Review A3 integration and measure other repeated reads. Keep Audit search local and writes immediate. |
|
||||
| PERF-09 | PARTIAL · high · medium | `ClientShell.tsx` and `App.tsx` already split many routes. JobTable, Login and Landing stay eager within the client app. Trace the 550,002-byte largest export chunk and compare cold routes before changing imports. Preserve auth, state and accessibility. |
|
||||
| PERF-09 | PARTIAL · high · medium | Isolated JobTable split `85ebbd9f` removed 241,317 raw JS bytes on Landing and Login (12.0% each) while adding 29,311 bytes on Jobs. 74 tests and route guards passed. Review exact A3 integration and repeat throttled mobile checks before broader splitting. |
|
||||
| PERF-10 | GATED external service · low · medium | No CDN in inspected source. Measure isolated proxy cache headers and European public TTFB before proposing a CDN. Compare static immutable origin caching, asset purge and revalidation. Keep HTML revalidatable and API/documents private. DNS, cost and topology require approval. |
|
||||
| PERF-11 | PARTIAL · high · high | Applications, Documents, Correspondence and Processing have paged paths, with some application filters materialised first. Users is full-fetch, Audit is bounded, and board's full array is contractual. Prioritise ordinary table query/bytes, then stable Users paging or Audit timestamp/ID cursor. Preserve last-admin count, filtering, ordering, mutations and keyboard. |
|
||||
| PERF-12 | OPEN · medium · medium | No compression middleware/directive found in inspected app/NGINX source. External ingress unknown. Compare payloads raw/gzip/Brotli and CPU on isolated responses. Prefer projection and paging. Verify one encoding layer, Vary and side-channel boundaries. |
|
||||
|
||||
Reference in New Issue
Block a user