Files
jobtrackingapp/docs/redesign/phase-7/p7-08/OPERATIONS.md

16 KiB
Raw Permalink Blame History

P7-08 — Operations page

This is the second presentation boundary in the approved checkpoint. Operations implemented scope: CONDITIONAL GO; final staged hygiene, commit and normal push remain pending. The recent-notification slice is committed and normally pushed as 40cfe04df51654c5ab9a073c13c8d67e0d90dcae. Direct verification at 2026-10-16 21:15:02.899052 UTC proves local HEAD = origin = live development, a clean worktree at entry and unchanged local/origin/live main (27657f31131cd95d42f0e1290853ec9c9b3959a4). The exact receipt is .artifacts/phase7/p7-08/recent-push-receipt.json; it does not publish later Operations work.

Baseline and bounded scope

Fresh existing Operations tests pass 3 cases / 1 suite, 21:15:20.042688–21:15:23.807296 UTC, p708-operations-entry-20261016T211520Z. All 21 finite inputs match in operations-entry-pre/source.json and operations-entry-post/source.json, observed 21:15:19.506584→21:15:27.667333 UTC. The portable entry retains the raw commands, three ordinary case names and source/push receipts. The prior recent slice's 49/6 and native19 remain separate evidence.

Keep the existing /operations route and shell H1, two list reads bounded at 50, 15-second polling, explicit Refresh, notification read/dismiss and server-admitted Cancel/Retry. Reuse shared section/theme/feedback primitives and the existing operation DTO. No API/schema/provider/model/worker/route owner changes belong to this boundary. Canonical Profile facts, CV overrides/revisions, frozen packages and original PDF geometry remain owned elsewhere.

Confirmed source findings and required proof

Finding Bounded correction / required regression
Locale callback changes restart reads/polling and old responses are unsequenced Keep the load owner stable, abort/invalidate obsolete reads, reject stale completions and dispose callbacks; locale changes format cached data without another GET
State-only busy flag permits same-turn competing actions Reserve writes synchronously; preserve server canCancel / canRetry authority and the captured operation ID
A poll can overwrite a newer committed action Invalidate the pre-write read and adopt the actual returned operation DTO or acknowledged notice change; reconcile with a new snapshot
A committed write followed by failed refresh looks like an ordinary action error Distinguish read recovery from write failure; Retry must perform GET only, with no replay or stale enabled action
Initial read failure also shows empty lists Establish emptiness only after a successful snapshot; retain known rows on failed refresh
Removed/disabled initiating controls lose focus Use a stable named activity region during the action and a section-heading fallback when removed; respect deliberate focus elsewhere
Raw known status/task codes, created date labelled Started and faded read cards Localize supported known codes, retain honest unknown metadata, label the actual created date and keep readable surfaces/semantic read state
Real Cancel creates a notice but the shell event is omitted Emit the existing change event after a committed mutation even when its follow-up read fails; preserve notification/task separation

Add ordinary unit REDs before repair, affected consumer tests, actual local authenticated lifecycle/owner/recovery workflows and finite responsive/theme/language/keyboard/axe evidence. Controlled metadata/progress/link/error projections must remain labelled and must not imply worker or result-contract qualification. Never activate a handler to manufacture a working-state fixture.

Ordinary regressions and bounded changes

Times in this section are 2026-10-16 UTC. Raw commands and ordinary Jest reports remain under .artifacts/phase7/current/unit/; named source observations remain under .artifacts/phase7/p7-08/.

Observation Actual result and qualification
First Operations RED 3 pass / 17 fail of 20, 21:17:55.099112–21:18:04.281849, p708-operations-red-agent-20261016T211755Z; ordinary runtime/DOM failures, with no pending/todo cases. All 21 inputs match in operations-red-agent-pre/post/source.json
Unknown-metadata RED 19 pass / 1 fail of 20, 21:21:38.717718–21:21:44.554603, p708-operations-metadata-red-20261016T212138Z; the toString task identifier exercises an inherited-property lookup rather than a supported task mapping
Paired-read abort RED 19 pass / 1 fail of 20, 21:22:49.957266–21:22:55.672446, p708-operations-pair-red-20261016T212249Z; initial failed-read recovery must abort its outstanding sibling read
First affected candidate 73 cases / 6 suites PASS, 21:23:03.108059–21:23:18.069912, p708-operations-verified-green-20261016T212303Z; this includes the ten sidebar-active-navigation cases
Separate shell-navigation consumer 3 cases / 1 suite PASS, 21:24:10.940417–21:24:15.838318, p708-operations-navigation-consumer-20261016T212410Z; the disjoint affected total is 76/7, not 66
Peer-review RED 19 pass / 2 fail of 21, 21:27:51.031680–21:27:59.380417, p708-operations-peer-red-20261016T212751Z; an existing assertion requires a human task name, and one new case demonstrates focus lost to BODY when an accepted poll removes the focused control. All 25 peer-RED inputs match
Peer repair candidate 74/6 PASS, 21:28:36.894486–21:28:51.898001, p708-operations-peer-green-20261016T212836Z, with all 25 peer-GREEN inputs held; separate shell navigation 3/1 PASS, 21:29:39.234703–21:29:44.379120, p708-operations-final-navigation-20261016T212939Z. The affected total is 77/7; runtime success alone does not establish interface acceptance

The presentation uses the existing shared page sections, density padding, theme and localization. Read ownership now reserves one active load, invalidates obsolete responses, aborts paired reads on failure and disposes polling on unmount. Language changes reformat cached rows. Actions reserve a synchronous guard, capture the original ID, retain server eligibility and invalidate earlier polls. Returned operation DTOs or acknowledged notice changes remain visible if the follow-up read fails; the resulting recovery performs GET only and blocks mutation replay. Successful mutations still emit the existing notification-change event.

Empty states require a successful snapshot. Known task/status mappings use own-property checks; unknown values remain visible. Dates describe creation, read notices retain readable surfaces, actions wrap with responsive target sizes, and the activity region supports stable focus. Peer corrections give operation articles a human task name while retaining data-operation-id for exact test identity, and restore the heading only when a poll removed the focused control and focus fell to BODY. Surviving controls and deliberate focus elsewhere keep focus. These changes do not alter backend admission, DTO fields, storage, workers or result contracts.

First native candidate and its limits

The focused native RED uses the prior recent-slice export lIzSurm9WwMhPbE11MvC9, before Operations changes. It fails 1/1, 21:22:15.983984–21:22:31.840570, because the new named activity region is absent. Root's actual review of the failed PNG also observes an error and false empty state together. The test stops before the held-poll/cancellation assertions; this RED does not prove those later assertions failed. Capsule .artifacts/phase7/p7-08/operations-native-red/results.json has SHA256 afd166cb00ecc656c28029ba01bfaa5652cd98c8d75a02244824c4362a5c8aa8.

The first candidate capsule .artifacts/phase7/p7-08/operations-candidate-verified/results.json, SHA256 734d0fecbeac66f977ced1aaf9d1ccc1d444d8d00637d49becac60ea01ebb370, retains the 76/7 unit evidence, four passing gates and build U-xpRaXrf8JBPqE2QoR9B. Lint/app TypeScript/browser TypeScript/build pass 21:23:40.110553–21:24:42.415744. Native Operations 5/5 passes 21:24:42.416270–21:25:38.901271; notification consumers 6/6 pass 21:25:38.908326–21:26:22.058289; ordinary P2-D01 1/1 passes 21:26:22.064846–21:26:35.660951. All 12 pass without skip, unexpected result, flaky result or retry.

That candidate records 12 Operations axe scans: 0 violations / 3 incomplete nodes, and 14 notification scans: 0 / 102. Its 31 retained images have not been accepted as an actual visual review. All 25 inputs match from operations-final-pre through operations-candidate-post, observed through 21:26:53 UTC. This evidence predates the peer corrections and cannot accept their later build. Controlled progress, unknown metadata, errors and navigation projections remain distinguished from real authenticated local mutations; no handler or provider/model is enabled to create fixture states.

Later gate failure and pause

After the peer runtime pass, the next gate batch passes lint 21:29:28–21:29:56, then fails app TypeScript 21:29:56–21:30:10: test line 83 supplies exact: true to an installed ByRoleOptions type that does not support it. Capsule .artifacts/phase7/p7-08/operations-peer-types-failed/results.json, SHA256 2d46184762d5712ae2bdf168962a1a536d4bc6d07d96058265d1d6183ca94d78, freezes these actual gate receipts. No successful build/native run on the peer-corrected source follows from that batch. The later correction removes only the unsupported test option, preserving the literal name, explicit accessible-name assertion, data-ID checks and API assertions; production code remains unchanged.

All 25 frozen inputs remain unchanged across the pause through 2026-10-17 01:55:29.881309 UTC. No execution during the pause is inferred. The resumed fetch succeeds at 01:55 UTC, with HEAD/origin at the already published 40cfe04 and unchanged main; Operations presentation work remains uncommitted at that observation. Fresh post-correction proof follows.

Final finite evidence — 2026-10-17 UTC

The portable Operations results retain all ordinary history, the failed/superseded capsules and the final manifests. Final capsule .artifacts/phase7/p7-08/operations-final-verified/results.json has SHA256 b65047355b75e12fc739e3a12c32b16448b01194f84eb1f06480d42198c914aa; the separate consumer capsule .artifacts/phase7/p7-08/operations-final-consumers/results.json has SHA256 dfafa88a02b9d33cc38ac1cf483631cc9748d9c72dbc81475d7c56ea16cf4c25.

Final command Actual result and UTC interval
Affected frontend 77 cases / 7 suites PASS, 01:56:05.783220–01:56:21.237302, zero failed/pending/todo
Lint Exit 0, 01:56:15.965185–01:56:38.079229
App TypeScript Exit 0, 01:56:38.081256–01:56:48.967183
Browser TypeScript Exit 0, 01:56:48.970700–01:57:01.477286
Production build Exit 0, 01:57:01.479288–01:57:09.154781; build YBJ6UzKUv_ZeDjZzgO3Gh
Native Operations 5/5 PASS, 01:57:09.159317–01:58:02.566772
Native notification consumers 6/6 PASS, 01:58:02.572799–01:58:42.574608
Ordinary P2-D01 1/1 PASS, 01:58:42.582126–01:58:55.731272

All 12 native cases pass with zero skips, unexpected or flaky results and zero retries. All 25 finite source inputs match from operations-types-final-pre at 01:56:05.282845 through operations-types-final-post at 01:59:10.798235; API and test DLLs remain unchanged. The actual local Program/cookie journeys preserve same-ID cancel/retry and read/dismiss persistence, owner/anonymous boundaries and ordinary P2-D01. The held-poll, failed-read and long/unknown presentation projections remain explicitly controlled evidence, rather than provider/worker execution.

All 14 final Operations PNGs are actually reviewed, seven by root and seven by peer; root also reviews the final P2-D01 image. Thus 15 of 31 retained final images receive actual review. The other 16 notification-consumer images are retained, without a new review claim; the prior recent-slice review remains separate. The finite Operations evidence covers responsive sizes, English/Bokmål, themes and keyboard behavior without establishing human assistive-technology or device acceptance.

Final Operations axe records 12 scans, 0 violations / 3 incomplete occurrences: two short badge-text contrast contexts and one overlapping-background language-button context. Notification consumers independently record 14 scans, 0 / 102: 14 modal-root focus contexts, four short badge-text contexts, 83 overlapping-background contexts and one partially obscured Dashboard label. All rule/node vectors remain retained; precise contrast and manual acceptance remain qualified. No rule is waived to produce the passing result.

The preliminary static-check receipt passes at 02:02:20.371383 UTC: 23 documents, 566 local links, 57 preservation groups, 33 routes and four secret/whitespace commands exiting 0. An earlier preliminary documentation check correctly failed while this named manifest did not yet exist; creating the required manifest resolves the missing target without weakening checks. Final staged hygiene and canonical source comparison, commit, normal development push and direct remote verification remain pending.

Preservation and current decision

Operations implemented scope is CONDITIONAL GO, pending final staged hygiene, commit and verified normal publication. Both P7-08 presentation boundaries are now implemented conditionally; the recent slice is already published. The 21 Operations cases include 18 additions over its three-case entry, with no new frontend suite: the derived inventory becomes frontend 791/95 from the recent slice's 773/95, and five new browser cases derive 323 from 318. Backend remains 1,054 from the separate UTC repair. These are inventories, not fresh integrated runs or publication evidence; full frontend 573/89, backend 1,033 and sidecar 49 remain inherited until P7-12.

All 57 groups remain 56 PARTIAL / C11 DEFERRED, with 33 current route patterns. F20 and existing reliability debt, human screen-reader, real zoom, physical touch/software keyboard, production font/photo/print, actual MariaDB/provider execution and PDF-corpus qualifications remain open. P5-13 is withheld with zero qualification calls; followMode is deferred. Production is NO-GO, main is unchanged and Phase 8 implementation has not started. Settings follows this boundary in the approved sequence.

Final staged hygiene passes 2026-10-17T02:03:25.900686UTC: four secret/whitespace gates, 23 documents/568 local links, 57 groups and 33 routes. All 25 staged canonical-LF hashes match final as-run sources. Operations commit and normal development push follow; no production action.

P7-08 publication and P7-09 entry

Operations c5176e3251 is normally pushed and directly verified 2026-10-17T02:03:53.815275UTC: clean HEAD=origin=live development, local/origin/live main27657f3 unchanged. Both P7-08 UI boundaries remain implemented CONDITIONAL GO and published; manual/provider/output/release conditions remain. Earlier pending-publication text is superseded by this exact receipt in Operations results. P7-09 follows its approved two boundaries; a separately bounded OAuth sender repair first protects its two existing callback consumers. Fresh entry23/3 frontend and40 unchanged-binary backend cases pass;791/95,323,1054 remain derived inventories, not full-suite passes. No production or Phase8 action.