docs(roadmap): add performance baseline and parallel checkpoints
This commit is contained in:
@@ -32,9 +32,11 @@ Updated 10 November 2026. This is the cross-phase work list. The source prompts,
|
||||
- [ ] **Calendar**. Recorded closing dates and follow-ups are covered. Resolve genuine interview scheduling, original precision/timezone and provider/ICS qualification as applicable. Preserve agenda/month toggle and preference.
|
||||
- [ ] **Career, CV, letter and documents**. Finish connected overview-to-document reuse and create/import-to-edit/preview/export evidence. Preserve revisions, null-as-inherit, canonical profile ownership, frozen packages, import review and RD21.
|
||||
- [ ] **Correspondence**. Improve inbox, mailbox state, relevant job context and review. Scope explicit consent, provider permissions, multi-mailbox storage and retention separately. Preserve conflict, attachment and confirmed-send flows.
|
||||
- [ ] **Admin Users**. Alignment and read-only 2FA shipped. Compact actions and creation/role/reset/deletion dialogue, error and keyboard coverage remain. **Gated** MFA recovery design approval and authorisation for factor changes.
|
||||
- [x] **Admin Users compact actions**. One keyboard menu retains existing role, reset and delete paths. Published `327d99df` with 14 tests and 72 controlled browser states.
|
||||
- [ ] **Admin Users**. Continue server-backed creation/role/reset/deletion and native error/device coverage. **Gated** MFA recovery design approval and authorisation for factor changes.
|
||||
- [x] **Audit recent search**. Search the existing admin response by user, type, application ID/title or company. The limit and no-match state are explicit. Published `49e79875` with 10 selected tests and 72 browser states.
|
||||
- [ ] **Audit and privacy**. Mail-subject redaction shipped. Add structured filters and safe record expansion, minimise exposed fields and verify isolation across remaining delivery paths. **Gated** private support access proposal, consent, expiry and revocation.
|
||||
- [x] **Recent Audit filters and details**. Exact event type and inclusive local dates combine with recent search. Keyboard disclosure uses already permitted values. Published `fd524a4b` with 11 tests and 108 controlled browser states.
|
||||
- [ ] **Audit and privacy**. Mail-subject redaction shipped. Historical search, additional supported filters, safe event history and isolation across remaining delivery paths remain open. **Gated** private support access proposal, consent, expiry and revocation.
|
||||
- [ ] **System Status**. Last successful browser refresh shipped. Qualify actual worker/queue/task/provider/mail/enrichment/error/timing signals with honest stale/unavailable states. Design exists for isolated allowlisted diagnostics. **Gated** execution, audit and isolation approval. Retain CV benchmark evidence.
|
||||
- [ ] **Settings and automation**. Qualify individual rules and explanatory states, remaining recovery cases and per-user Ghosted pause contract. Keep model/provider execution and real mutations separately authorised.
|
||||
- [ ] **Bookmarklet and terminology**. Finish EN/NB terminology and display review. Retain bookmarklet until device parity for URL paste, extension and PWA sharing, then seek retirement approval.
|
||||
@@ -56,7 +58,7 @@ Updated 10 November 2026. This is the cross-phase work list. The source prompts,
|
||||
|
||||
- [ ] **I18N-00** Close full surface and catalogue inventory and locale priorities. All 188 historical dynamic call reviews are accounted for. Full visible text and locale acceptance remain open.
|
||||
- [ ] **I18N-01** Locale registry, locale aliases/legacy NB, persisted user choice, fallback/negotiation, formatting and migration. Keep UI, job and document languages independent.
|
||||
- [ ] **I18N-02** All React copy, navigation, form/dialog/error/loading states, accessibility, responsive text expansion and language switch continuity.
|
||||
- [ ] **I18N-02** All React copy, navigation, form/dialog/error/loading states, accessibility, responsive text expansion and language switch continuity. Mobile salary formatting and Admin metric formatting are published independently at `af33e455` and `4c12f769`. A3 integration and native/browser coverage remain open.
|
||||
- [ ] **I18N-03** API error codes, validation, mail, notifications, background/operational messages, locale persistence and fallbacks.
|
||||
- [ ] **I18N-04** Career Profile, Docling/import review, CV and letter editors, generated content, templates and PDF. Preserve document language and revision fidelity.
|
||||
- [ ] **I18N-05** Multilingual discovery, occupation names, aliases, matching, provider languages and regional formatting. Coordinate with GJ.
|
||||
@@ -75,8 +77,8 @@ Updated 10 November 2026. This is the cross-phase work list. The source prompts,
|
||||
## LAUNCH-SITE-01 · Public launch site
|
||||
|
||||
- [ ] **LAUNCH-00** Close research, registration/degraded-auth, performance and asset-rights audit inputs. Existing 12 rendered states and raw SEO findings published at `98483b80`.
|
||||
- [ ] **LAUNCH-01** Produce four high-fidelity desktop/mobile concept pairs using genuine synthetic product captures and appropriate cleared imagery. Present minimalist, premium SaaS, friendly/human and editorial choices for owner selection.
|
||||
- [ ] **LAUNCH-02** Refine selected elements and obtain explicit final design approval. **Gated**.
|
||||
- [x] **LAUNCH-01** Four high-fidelity desktop/mobile concept pairs published at `ccb11494`, with synthetic product captures and 20 scoped browser checks.
|
||||
- [ ] **LAUNCH-02** Owner selects or mixes minimalist, premium SaaS, friendly/human and editorial directions. Refine selected elements and obtain explicit final design approval. **Gated**.
|
||||
- [ ] **LAUNCH-03** Build public foundation and responsive accessible hero/navigation without disturbing auth/signup or protected return routes.
|
||||
- [ ] **LAUNCH-04** Validate product screenshots, photography rights and optimisation. Use synthetic data, truthful captions, responsive assets and alternatives.
|
||||
- [ ] **LAUNCH-05** Implement reviewed hero, workflow, feature, trust, plans, FAQ and conversion content. Confirm legal/privacy links, signup and honest feature/price claims.
|
||||
@@ -109,7 +111,7 @@ Bounded offline fixes and root security policy exist. Formal integrated scope, t
|
||||
|
||||
## RELEASE-READINESS-01 · Qualification and production decision
|
||||
|
||||
- [ ] **Stage 1** Close discovery, prior blockers and baseline scope. Endpoint/environment census published at `47c6834c`. Backup parser RR-11 published with 31 offline tests. RR-12 rollback and RR-13 recovery remain open.
|
||||
- [ ] **Stage 1** Close discovery, prior blockers and baseline scope. Endpoint/environment census and RR-11 parser are published. RR-12 handler tests and RR-13 failure guards for off-host transfers and monthly completion markers are published through `24a62997`. Runtime rollback and recovery remain open.
|
||||
- [ ] **Stage 2** Freeze exact candidate, environment, image/digest, migration/config/dependency identities, CI and evidence provenance.
|
||||
- [ ] **Stage 3 · Functional** Accounts/auth, jobs/tracking, dashboard, career/CV/documents, AI, correspondence, integrations, notifications, admin, billing and exports. Qualify real browser, sidecar and MariaDB lanes separately.
|
||||
- [ ] **Stage 3 · UX** Responsive/visual and keyboard/AT/accessibility, EN/NB and launched locales, reflow/contrast, physical devices and representative workflows.
|
||||
@@ -121,6 +123,32 @@ Bounded offline fixes and root security policy exist. Formal integrated scope, t
|
||||
- [ ] **Stage 6** Rehearse isolated upgrade, image rollback and data rollback, database/files/keys/tombstones restore, encrypted off-host retrieval, validation, RPO/RTO and operational recovery.
|
||||
- [ ] **Stage 7** Publish final matrix, evidence, risk/owner decisions and GO/NO-GO. Production deployment requires a separate explicit decision.
|
||||
|
||||
## PERF-01 · Performance and scalability
|
||||
|
||||
Source: owner PERF-01 prompt and Full-Roadmap-Autonomy Addendum, 10 November 2026. Performance item numbers below are the owner's stable IDs. Priority is provisional until comparable measurements exist. The [performance baseline](PERF_BASELINE.md) records export bytes and historical MariaDB evidence separately. Record source, environment, fixture sizes, repetitions and before/after values together.
|
||||
|
||||
| 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-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. |
|
||||
| PERF-05 | PARTIAL · medium · medium | `ViewStateNotice` and `PageLoader` mostly use spinners. Editor, Career, checklist and some Settings already use skeletons. Test slow dashboard/discovery/list/detail/document/mail/Admin reads. Add layout-matching skeletons only where perceived loading improves. Check reduced motion, CLS, focus and empty/error separation. |
|
||||
| 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-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. |
|
||||
| PERF-13 | PARTIAL · high · medium | JobTable and Dashboard already memoise specific row/chart computations. Profile list typing, dashboard, editor and navigation commits before changing dependencies. Prioritise confirmed duplicate reads. Preserve drafts, history, context and revisions. |
|
||||
| PERF-14 | ACTIVE mechanism · low · low | Next.js 16.4.1/Turbopack emits compact assets and zero export source maps in the isolated baseline. Retain bundler minification. Compare exact A3 reproducible sizes and deployed source-map exposure during release. |
|
||||
| PERF-15 | PARTIAL · high · medium | Route/editor/Admin, nested Kanban and viewport-gated CV thumbnails are already lazy in part. Current landing SVGs load eagerly. Defer measured offscreen assets only. Protect critical content, focus, preview sandbox and state. |
|
||||
| PERF-16 | PARTIAL · medium · medium | `app/layout.tsx` starts the external Archivo stylesheet and the theme bootstrap. Google Sign-In and Turnstile already load conditionally. Measure blocked/offline font and startup waterfall, then compare a licence-cleared delivery option. Preserve auth, theme, provider and CSP ordering. |
|
||||
| PERF-17 | GATED removal · low · medium | P10-03 found no proven safe dependency removal. Inventory frontend, .NET and Python reflection, build, sidecar and runtime consumers. Require exact candidate approval, locked restore and compatibility evidence before removal. |
|
||||
| PERF-18 | PARTIAL · medium · medium | Scoped EF contexts use Pomelo 9 and MySqlConnector 2.4, whose connection pooling is enabled by default. No source override found. Measure driver pool wait/usage/timeouts, cancellation and DB headroom in a disposable environment. Separate context pooling from connection pooling. Tune only with capacity and rollback evidence. |
|
||||
|
||||
## Separately gated or excluded
|
||||
|
||||
- [ ] Optional P7-06F follow-mode composer: retain deferral pending action/fallback decision. P7-12 completed conditionally. Preserve its native/provider/release limits.
|
||||
|
||||
Reference in New Issue
Block a user