diff --git a/docs/redesign/phase-9/p9-05/README.md b/docs/redesign/phase-9/p9-05/README.md index 450192e..87bec54 100644 --- a/docs/redesign/phase-9/p9-05/README.md +++ b/docs/redesign/phase-9/p9-05/README.md @@ -2,6 +2,8 @@ The final separate Phase9 diagnostic lane completed **18/18**, zero failures/skips/flaky/retries, on the frozen825-input manifest (`phase9-frozen`, exit0 at20:25:16UTC). It includes12 route/theme/locale/width cases, four settled accessibility cases, one RD21 characterization and one bounded workload. **A passing characterization does not qualify the unsafe behavior it records.** The earlier18-case run and the later16pass/2fail transition observation remain superseded raw evidence. +That diagnostic snapshot is retained as [source-manifest-before-admin-fixture.json](../p9-00/source-manifest-before-admin-fixture.json). The final ordinary-run snapshot changes only the locale-sensitive Admin test locator; [exact delta](../p9-00/admin-fixture-delta.json) proves product/build/diagnostic/core inputs are unchanged. No diagnostic result is claimed to execute an ordinary fixture it does not load. + ## Native documents Fresh real preview and native exported PDF bytes from the retained corpus passed **16/16 fixtures /36 pages** under the unchanged oracle: exact page count/membership, physical dimensions ±0.5mm, marker positions ±2mm, font sizes ±0.5pt and original RGB tolerance. Nine defaults, long EN/NB, 8mm Letter, 28mm roomy, grid/bubbles, long sidebar and unbreakable boundary fixtures are included. No renderer geometry or tolerance changed. diff --git a/docs/redesign/phase-9/p9-05/volume-cases.json b/docs/redesign/phase-9/p9-05/volume-cases.json index bf3af9d..df35d62 100644 --- a/docs/redesign/phase-9/p9-05/volume-cases.json +++ b/docs/redesign/phase-9/p9-05/volume-cases.json @@ -9,7 +9,7 @@ { "status": "passed", "retry": 0, - "durationMs": 6435, + "durationMs": 1966, "errors": [], "attachments": [ { @@ -32,7 +32,7 @@ { "status": "passed", "retry": 0, - "durationMs": 5520, + "durationMs": 1623, "errors": [], "attachments": [ { @@ -55,7 +55,7 @@ { "status": "passed", "retry": 0, - "durationMs": 51407, + "durationMs": 16460, "errors": [], "attachments": [ { diff --git a/docs/redesign/phase-9/p9-05/volume/README.md b/docs/redesign/phase-9/p9-05/volume/README.md index 9eb1a76..bbb651c 100644 --- a/docs/redesign/phase-9/p9-05/volume/README.md +++ b/docs/redesign/phase-9/p9-05/volume/README.md @@ -1,6 +1,6 @@ # Bounded volume supplement -**3/3 passed**, zero failures/skips/flaky/retries, `volume-qualified`, exit0 at20:46:29UTC on22October. Full TypeScript checking also passed. The initial runtime pass used an incorrect type-only import; that import was corrected and the complete three-case successor passed on the final source. Neither run changes product code. +**3/3 passed**, zero failures/skips/flaky/retries, `volume-complete`, exit0 at00:27:14 UTC on23October. Full TypeScript checking also passed. An initial type-only import error was corrected; review then strengthened timeline preservation from a prefix check to exact content-by-ID comparison. The complete three-case successor passed on the final source. Earlier passes are retained as superseded evidence; no product code changed. | Scenario | Actual native result | Limit | |---|---|---| diff --git a/docs/redesign/phase-9/p9-05/volume/volume.spec.ts b/docs/redesign/phase-9/p9-05/volume/volume.spec.ts index fd5552d..bd21947 100644 --- a/docs/redesign/phase-9/p9-05/volume/volume.spec.ts +++ b/docs/redesign/phase-9/p9-05/volume/volume.spec.ts @@ -55,14 +55,15 @@ test('P9 volume: 100 manual timeline messages retain exact membership and foreig expect(company.status()).toBe(201); const job = await api.post(`${base}/jobapplications`, { headers, data: { companyId: (await company.json()).id, jobTitle: 'Volume timeline fixture', status: 'Saved' } }); expect(job.status()).toBe(201); const jobId = (await job.json()).id; - const ids: number[] = []; + const ids: number[] = []; const expectedContent = new Map(); for (let index = 0; index < 100; index++) { - const response = await api.post(`${base}/correspondence`, { headers, data: { jobApplicationId: jobId, from: 'Synthetic manual note', content: `Timeline evidence ${index} ${'Documented progress. '.repeat(20)}`, channel: 'manual', direction: 'incoming' } }); - expect(response.status()).toBe(201); ids.push((await response.json()).id); + const content = `Timeline evidence ${index} ${'Documented progress. '.repeat(20)}`.trimEnd(); + const response = await api.post(`${base}/correspondence`, { headers, data: { jobApplicationId: jobId, from: 'Synthetic manual note', content, channel: 'manual', direction: 'incoming' } }); + expect(response.status()).toBe(201); const id = (await response.json()).id; ids.push(id); expectedContent.set(id, content); } const response = await api.get(`${base}/correspondence/${jobId}`); expect(response.status()).toBe(200); const rows = await response.json(); expect(rows.map((row: { id: number }) => row.id).sort((a: number, b: number) => a - b)).toEqual([...ids].sort((a, b) => a - b)); - expect(rows.every((row: { content: string }) => row.content.startsWith('Timeline evidence '))).toBe(true); + for (const row of rows) expect(row.content).toBe(expectedContent.get(row.id)); expect((await other.api.get(`${base}/correspondence/${jobId}`)).status()).toBe(404); await info.attach('phase9-volume-timeline', { body: JSON.stringify({ messages: rows.length, exactMembership: true, foreignRead: 404, limits: 'Native persisted manual correspondence; no external mail delivery or100-message browser rendering claim.' }), contentType: 'application/json' }); } finally { await account.api.dispose(); await other.api.dispose(); }