Files
jobtrackingapp/docs/redesign/phase-7/p7-06/FORMS.md
T

16 KiB
Raw Blame History

P7-06 — Embedded Application forms

Embedded forms: CONDITIONAL GO; normal development push pending. Latest affected55/4 PASS, native9/1 and15/1 final-build consumers retain the strict real-account language-save HTTP500 failure (RD11); it is not waived or rerun to replace the result. Overall P7-06 remains ongoing. This is the first of exactly three sequential P7-06 commits: embedded forms → inbox/read review → compose/send. No implementation hash or push receipt is assigned here. Optional P7-06F remains DEFERRED until its action/fallback decision exists.

The entry retains the actual627955a Reminders receipt and the earlier fresh39/3 baseline atc723a4e with uncommitted Reminders work. Seven relevant captured sources remained unchanged through that baseline. The clean receipt and pre-change run are separate observations.

Bounded repairs and preserved behavior

The existing ApplicationAssets.tsx owner retains loaded controls, dirty drafts and owned history after failed mutations. Its five initial reads expose explicit GET Retry; changing UI language retranslates without another asset GET or write. Archive Retry repeats the captured archive read; failed mutations remain deliberate original actions rather than an automatic replay.

Dirty Restore uses the shared confirmation and a synchronous mutation mutex; Cancel makes zero restore POSTs. AI Apply stays blocked while the parent Save is busy, and suggestion source/action is captured so changing the current action cannot relabel an earlier result. Five job-ID keyed children and unmount guards dispose old-job state and prevent old completions from copying into a new job, redirecting or invoking its saved callback.

The existing CV duplicate endpoint preserves JobApplicationId on both variants before explicit attachment. Consequently, a newer GET projection can differ from stale UI association state. When creation succeeds but attachment fails, the candidate retains that exact created ID and offers explicit attachment recovery, normalizing to one associated variant without another duplicate. This is finite local recovery, not transactionality or distributed idempotency. Actual image034 exposed misleading “could not create” copy after successful creation; the feedback now distinguishes attachment failure.

The shared RichText Tooltip is hidden only when Popper marks its reference hidden. Application forms, CV Editor and Career remain its three consumers. Final dialog work uses DialogContent as a named region with tabIndex=0, H3 subheads and both Restore Tooltips with describeChild, replacing the owner generic-label semantics. Latest native evidence proves keyboard PageDown scrolling. Updated scan totals are not inferred from this source change.

Retain the seven-section workspace, table, Router/history/aliases and renderer. One CV variant, letter source/action and additive owned history, bodyless restore/noExpectedVersion, the two-answer Notes encoding/clear behavior, P2-D01 frozen package bytes and archived binaries remain unchanged. No backend or schema contract was changed; RD21 last-writer/partial-write limits remain.

Unit evidence and count provenance

Observation Executed outcome Qualification
Pre-change baseline,11:39:16–27UTC 39/3: assets18+overlay18+helper3; no failed/pending/todo Exact frozen entry capsule; not a clean627955a baseline
Eight strengthened cases,12:07:57–12:08:04UTC Assets26:18 pass/8 fail Meaningful RED for the existing defects; raw command/report retained in forms/unit-red
First candidate 46/47, then47/3 after scoping an old assertion The global error locator became ambiguous because the AI read failure is now visible; the assertion retains its original intent rather than hiding the error
Two keyed-identity cases 49/3: assets28+overlay18+helper3 GREEN-only additions; do not claim those two reproduced RED
Creation/attachment copy correction,16:56:29–48UTC 48 pass/1 fail Strengthened existing assertion after actual visual review; raw prefix p706-forms-copy-attachment-red-20261013-review-20261013T165629Z
Corrected copy plus named controls 54/4 Raw GREEN prefix p706-forms-copy-attachment-green-20261013-20261013T170047Z
Latest semantic candidate,17:09:04.624961–17:09:20.681746UTC 54/4: affected49/3 plus existing named controls5/1; zero failed/pending/todo Raw prefix p706-forms-final-semantics-green-20261013-20261013T170904Z; no complete slice acceptance

Raw prefixes above are under .artifacts/phase7/current/unit; each retains its JSON report, command and log. Ten new frontend cases/zero new suites derive 716/94, not a fresh full frontend run. The five named-control cases already belong to the inherited whole suite and are not counted again. Nine new ordinary native cases (eight original plus a separate controlled503 case) derive 282 browser cases, not an integrated total or282 fresh passes. Latest full573/89 frontend, backend1,033 and sidecar49 remain inherited; backend1,034 remains derived only.

Native, backend and consumer evidence

Run Outcome Retained limit
Native attempt1 1 pass/7 fail Exact failing traces/source/export in .artifacts/phase7/p7-06/forms/attempt-1-F7dRaRLWo_pjz6zoPoAPk
Native attempt2 6 pass/2 fail Exact capsule attempt-2-_Hza-JrlN1-7iFYcv7mKU; failures remain recorded
Native attempt3,16:48:57.993686–16:50:58.615845UTC 9/9 pass Earlier candidate capsule .artifacts/phase7/p7-06/forms/final/results.json, SHA256 4da6523e909f0a69cfead47e73cd094bb391b37d181e7efd05b5421919f6e322; does not validate later semantic changes
Native attempt4,17:02:34–17:04:33UTC 8 pass/1 fail Known real language-save HTTP500; attempt-4-7rHcRydumjgHBrGRn7NZA/results.json, SHA256 5268cfd446ba5b91917c2ccc30c786584eb8d497278373f397a2e6d2c0501de1
Latest semantic native,17:14:27.950279–17:16:29.233143UTC 8 pass/1 fail of9 Build xyh9FYyySEw1uIao4DveJ; only unchanged strict real-account language-save204 expectation receives HTTP500 on EN (RD11). Keyboard PageDown scrolling passes; no rerun/waiver
Fresh current Jobs,17:19:43.987302–17:21:24.862279UTC 5 pass Same current build; retained seven-section workspace consumer proof
Fresh current P2-D01,17:21:24.868267–17:21:36.805313UTC 1 ordinary pass Same current build; native frozen-document preservation remains ordinary
Earlier RichText/workspace consumers,16:41:46–16:45:50UTC Jobs5/P2-D01 ordinary1/CV4/Career11 pass Previous build/as-run source evidence; actual CV PDF200 and unchanged RichText bytes through those lanes. CV4/Career11 are not relabelled as fresh current-build runs
Existing backend asset/package subset,16:18:00.184066–16:18:03.191603UTC 30/30, no-build Same verified unchanged Release DLL; raw .artifacts/phase7/current/backend-career/p706-forms-20261013T161800Z/command.json and career.trx. No backend rebuild/full rerun

Fresh final current-build evidence is 14 pass/1 fail of15 (forms8/1+Jobs5+P2-D01ordinary1). Including previous-build CV4 and Career11 gives 29 pass/1 fail of30 relevant cases, with those build/source qualifiers retained. Repeated earlier Jobs/P2-D01 runs are not added again. Latest actual frontend remains54/4 at17:09UTC; these are finite affected/consumer counts, not whole-suite acceptance.

All native cases remain ordinary: no skip, expected failure, weakened real204 assertion, automatic retry or disabled rule is used. Actual HTTP500 occurred on repeated locale attempts with the unchanged DLL; the latest sole failure is EN. A passing run does not close RD11; retain diagnosis at P7-09. The separate controlled503 case proves only local dirty-draft retention, Toast feedback, exact language Retry and unchanged account language. It does not repair or replace the original real204 test.

The latest dialog semantics now have current-build native PageDown and workspace/frozen-document evidence, qualified by the retained RD11 failure. Final static/hygiene and current source/export evidence must be finalized before the normal development commit/push; no push hash or receipt is claimed here. The first forms slice is CONDITIONAL GO on that finite scope, while complete workflow human/device/provider/output and production acceptance remain unavailable.

Visual/accessibility evidence and retained debt

The operator actually displayed/reviewed all22 current forms PNGs from .artifacts/phase7/p7-06/forms/final-verified:22/110 total images, with88 other retained images. Current creation-success/attachment-failure feedback now correctly describes the attachment failure. The earlier22/110 review that exposed the incorrect copy remains a separate observation; repeated images are not additional cases. Full-page sticky composites and the long360×5288 image scaled to139×2048 do not prove every pixel, viewport occlusion, real zoom or a physical device. Textarea autosizing remains; no short screenshot is substituted for long-form evidence.

Final verified capsule .artifacts/phase7/p7-06/forms/final-verified/results.json has SHA256 28da994d574e819208d65edc756fac13eca0597a9d622bcd47a3eb488db7eea4; captured ApplicationAssets.tsx has SHA256 d3be34c85fd4ab8984356f5fdc8a5b741590120e4253f97246bf870486d027c1. These identify the current reviewed evidence/source; final portable/static records and normal push observation remain separately pending.

Prior triage contains 55 scans,0 violations/749 incompletes: new22 default+target-size0/162; Jobs8 WCAG0/89; CV12 WCAG0/121; Career13 default+target-size0/377. Exact vectors remain in .artifacts/phase7/p7-06/forms/axe-triage-prior.json, SHA256 f24695b6deaa30798672f4c0485fb68fa536877da14fa1c4006df1fddf7f279a. Contrast623 includes unknown ratio0 contexts and526 overlap-labelled contexts with empty related nodes; span-label, hidden-modal and frame-tested contexts retain their own conditions. Empty related nodes/ratio0 do not establish a cause, contrast ratio or AT acceptance.

Latest contextual triage is .artifacts/phase7/p7-06/forms/axe-triage-final.json, referenced by the portable result. The current forms 21 scans0/147 and Jobs 8 scans0/89 join earlier qualified CV12/121 and Career13/377, totaling 54 scans0/734. Four Restore span labels and three DialogContent generic labels disappear across matched scans. The remaining eight-node reduction comes from the missing second real-locale capture after HTTP500, not improved contrast. Forty-two other generic span labels remain; modal/background, sandbox-frame and unknown contrast contexts still require manual qualification. No rule was disabled and no incomplete was treated as a pass.

The portable result verifies453 saved file references, all six pre-native sources,74 current export files and the unchanged backend DLL. A failed collector attempt with incorrectly named source paths remains an incomplete ignored final-semantic folder; it performed no tests and is not an acceptance capsule. final-verified is authoritative for this final observation. Current static checks and the separately observed successor push receipt complete the bounded evidence record.

Parent aggregate identity repair after review

Read-only review found that the keyed answers child could still receive A's aggregate while navigating to B. This inherited parent gap allowed editing one B field to retain and later save A's other field. The original child-only tests supplied already-correct B props and did not cover that transition. A new ordinary parent/router test exposes the actual received props: its first run is18 passing/1 failing, with 43|Saved answer|Saved recruiter message incorrectly present while B's GET is held.

The aggregate now projects only data whose ID matches the current job, the answers editor waits for that aggregate, and read generations invalidate previous job/locale/unmounted completions. Same-job refresh still retains the current editor and its dirty state. The unchanged18 parent tests plus the new case pass; all affected assets28/parent19/helper3/namedcontrols5 yield 55/4 at21:15:52.411907–21:16:08.617731UTC. An intermediate52/3 run accidentally named a nonexistent helper file; it did execute those52 cases and is retained, but is not evidence for the helper3. This one addition derives 717/94 frontend, replacing716/94 only as a derived count.

A tenth native case exercises actual command-palette SPA navigation, a held B aggregate, absence of foreign draft fields, explicit one-field B save and real-HTTP readback of both jobs. Its final execution, export/source/static/push observations remain pending. Ten new ordinary cases would derive 283 browser, without claiming an integrated run. Previous55-scan and latest54-scan observations above identify their actual earlier source/export; they do not prove this later parent change.

Generated Tailoring titles/details remain server English in Bokmål; raw version source/action enums remain P7-11 localisation residuals. User-authored text is not automatically translated. Existing frame-level translation-dependent reload, attachment ID0 and AI-text freshness remain separately scoped. RD21, M01–M12 human reader/device/software keyboard/zoom, fonts/photo/native print/other-browser/provider/release requirements stay open. All57 groups remain56 PARTIAL/PRES-C11 DEFERRED and32 routes; P5-13 remains withheld,06F deferred, production NO-GO/main27657f3 unchanged and Phase8 separate. Inbox/read review and confirmed compose safety work remain the next two sequential boundaries.

The first parent-change native observation is retained in forms/attempt-6-parent-9sM6acEkOGxgN5fTRZXdE/results.json (SHA25627517dce65e6b68e1d9c1268776df9ddc458b063701a076437ce20da2bb9d1f0):7 pass/3 fail at21:17:34.149961–21:19:12.484298UTC. The new fixture incorrectly expected201 when the company already existed (the endpoint correctly returned200); it now reuses the owned company ID and retains the job201 assertion. The frozen dialog check set scrollTop0 while keyboard PageDown animation was still running, observed8 and failed; it now verifies keyboard Home returns0 after actual PageDown. Neither changes frozen byte/persistence assertions. The third failure remains strict real locale204→500. Corrected test-only execution is pending; no failed run is discarded.

Final parent-source forms run at21:19:34.115654–21:21:37.836490UTC is 9 pass/1 fail of10, retaining the ordinary first-Bokmål204→500 test. The new same-document navigation and exact two-job readback case passes; PageDown→Home and frozen HTML/file bytes pass. All23 current forms PNGs were actually displayed/reviewed, including the held B empty editor and saved B ownership views and the failed actual-language screenshot. Earlier22-image reviews remain separate. Affected and integrated counts remain distinct: latest frontend55/4; final count derivation717/94 and283 browser only.

The authoritative final capsule is forms/parent-final/results.json, SHA256e1ff6f5c9928a765630db3229b1ae88312e65cea82d24efabc16ccec6a817c1e, with23/111 final forms images actually reviewed. Final triage forms/axe-triage-parent.json SHA25651f6adcb2b205f0a983c73646864a53ba2b724a453217c3f5390d0520e35da67 records currentforms22/154 plus currentJobs8/89 and earlierqualifiedCV12/121,Career13/377:55scans0violations/741incomplete. Twenty matchedforms scans retain7semantic removals;2newB captures and2missingstrictlocale captures explain scope changes. This is not improved contrast. All current snapshots/74export files match;6of7pre-native files match, native fixture/Home changes explicitly qualified. Exportdigest e91f356cb09a8e828ad10e6497eb2927d5e7159b48907ddcd7132458486f9a1f. FreshJobs5 at21:21:45.248272–21:23:27.806820 andordinaryP2-D01 at21:23:27.812337–21:23:39.684013 PASS; earlier CV4/Career11 remain correct as-run qualifications. SourceWorkspace7a0fb891f2632b35a8267ca0143a68522334f20bd2b2eda57b3ed2661e357934, nativeb349b5190226b0d4b5e4cfd9a56d0bd5507c7ad5da328f11d5b38829cb271914. Final static/normal push observation is separate.

Final hygiene at21:26:32–35UTC passes tracked/untracked secret scan, working/staged/Phase7 whitespace,14document465relative-link checks,57groups and32original routes. Local development HEAD/origin still627955a after fresh fetch; main27657f3 unchanged. Normal development commit/push receipt follows in the inbox/read successor record, avoiding a self-referential commit hash. RD11 remains ordinary failing and mandatory; independent safe development can continue.