Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1ce93ca0e3 | |||
| ca519cacbe | |||
| d4b938fafb |
@@ -0,0 +1,17 @@
|
||||
# Attachment size localisation
|
||||
|
||||
3 November 2026. Isolated `codex/i18n-attachment-sizes` from published `ca519cacbec6ee8e385927ad31356dacc18b2f2d`. Ordinary localisation work is authorised independently of the pending A3 increment gate. This branch does not replace the newer A3 application tree.
|
||||
|
||||
`Attachments` and the frozen submitted-package attachment list displayed decimal points through `toFixed`, even with Norwegian UI text. They now use `Intl.NumberFormat` with the existing UI language. The attachment table keeps its existing 1024-based KB/MB threshold, zero KB decimals and one MB decimal. Frozen package labels keep one KB decimal. No stored file size, filename, snapshot, route, API, revision, download or generation language changes.
|
||||
|
||||
Verification:
|
||||
|
||||
- Red regression: two Norwegian-format cases failed, one English case passed; 58 cases were filtered, not executed. Native `attachment-size-red.json`.
|
||||
- Full affected suites: **61 passed**, zero failed/skipped, two suites; `attachment-size-tests.json`. Includes EN/NB MB labels and changing the UI locale on a retained frozen package without a write.
|
||||
- Typecheck, scoped ESLint for the four affected files, static-export build and `git diff --check`: PASSED.
|
||||
- AST-only graph refresh PASSED:18,702 nodes/46,195 edges/1,119 communities. Optional SQL parser is absent and143 files yielded no symbols; these are graph coverage limits. Generated graph stays local.
|
||||
- Independent static review found no actionable issues; verification reruns were not added to the61 cases.
|
||||
|
||||
Rollback reverts these four source/test changes; no database rollback is required. The published branch remains separate until its narrow delta is reconciled against the newer A3 baseline. Existing physical PDF metrics and visual acceptance are unaffected; no renderer source changed.
|
||||
|
||||
NOT RUN: new browser/device or physical PDF checks, complete European localisation, native-language review, backend/provider/live-model or release qualification. Existing tests and code remain responsible for file permissions and downloads; this display-only change adds no new access path. The 188 historical dynamic-call reviews remain accounted for and are not expanded by these three numeric-format regressions.
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"base": "ca519cacbec6ee8e385927ad31356dacc18b2f2d",
|
||||
"policy": "LF-normalised text SHA256",
|
||||
"files": {
|
||||
"job-tracker-ui/src/components/Attachments.tsx": "02081be8282cb3d1a525b336bededb8aabe561cc3b73e1b98e924f9ef945add1",
|
||||
"job-tracker-ui/src/components/ApplicationAssets.tsx": "effcee6cfa0a43ebe0d73a0da625410dc98a6580fddda225b843e5e00d4e45f6",
|
||||
"job-tracker-ui/src/attachments.test.tsx": "89bb3e277ae7be652073eec6d3b6188bcbeaea8b29b07478ff5b21654be8e7c1",
|
||||
"job-tracker-ui/src/application-assets.test.tsx": "980a346cb4452ac4b7e6b689a963e5a23fc6d77410e47e66a422f9cd9c704e7b",
|
||||
"docs/i18n/ATTACHMENT_SIZE_FORMATTING.md": "4576ccfc3de3b72cd3e5591c40f697b827d724b8f4fe588b54567dbe75252332",
|
||||
"docs/i18n/attachment-size-red.json": "872882cb7d2937bf1df7f7a89810158c5de831381f56c6ae8bb0263d26b84d8e",
|
||||
"docs/i18n/attachment-size-tests.json": "8b8188d432b7788f951cf2c67f790c6cd4d24553ed9accbeb702645b3d4b2c6a"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
# Current localisation continuation
|
||||
|
||||
3 November 2026 — independent document-date fix: invalid uploaded wall-clock dates/times/trailing junk now show the existing EN/NB unknown-date message instead of JavaScript rollover.40 tests/3 suites, typecheck, scoped lint and build pass; see DOCUMENT_DATE_VALIDATION.md. All four historical direct-catalogue accesses have contextual dispositions in DIRECT_CATALOGUE_REVIEW.md; current full extraction/backend literals/every-string triage remain open. No new locales or release approval. This branch is not yet integrated into A3 dashboard/application work.
|
||||
|
||||
Register portability correction: schema 3 explicitly normalises CRLF to LF when hashing reviewed TS/TSX/JSON text and the original inventory; historicalSourceSha256 retains the original inventory's raw-hash meaning. This avoids treating Git checkout line-ending conversion as a source edit. Integration initially detected the raw inventory mismatch; original snapshot contents and historical source hashes were preserved, and both worktrees are revalidated with the declared encoding. This is evidence portability, not renewed runtime execution.
|
||||
|
||||
2 November 2026. Historical 188 dynamic-call census finite key-domain review COMPLETE; full I18N-00 / European locale release acceptance remains INCOMPLETE. Original source-bound snapshots are retained under 00/. Machine register schema 2 binds inventory indices, source hashes and selected owner dependencies; 108 original plus 80 supplemental calls cover all 188 indices without overlap. Static review does not establish all translator sensitivity/context, every visible/backend string, grammar/plural quality, runtime coverage or native review.
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Historical direct catalogue access review
|
||||
|
||||
3 November 2026. All four entries in the frozen 00/DIRECT_CATALOGUE_ACCESS.json are in I18nProvider.tsx. Reviewed actual current callers and source, not re-extracted as a claim of complete current coverage.
|
||||
|
||||
| Historical expression | Context and disposition |
|
||||
|---|---|
|
||||
| translations[l].settingsLanguageSaveFailed | Public static account-preference error copy, no runtime private value. Uses requested language, guarded by save sequence/current language before showing feedback. Deliberate provider-internal access; calling the context hook inside its owner is inappropriate. Retain. |
|
||||
| translations[l].retry | Static retry action label in the same guarded feedback; no interpolation/private data. Retain. |
|
||||
| translations[language][key] | Central typed message lookup inside t, passed to interpolation; all callers use this message owner. React callers render text; this review does not certify every sink. Retain. |
|
||||
| translations.en[key] | Deterministic English fallback for the central lookup. No country/document-language coupling. Retain. |
|
||||
|
||||
The provider's TranslationKey/UiLanguage contracts and catalogue completeness tests constrain these accesses; sequence guards prevent obsolete-save feedback/retries. No new catalogue bypass or runtime change was required. Existing provider/catalogue tests pass within the40-case document-date qualification; this is not native linguistic or full security acceptance.
|
||||
|
||||
Original inventory/hash/line records are immutable historical evidence. Current source identity is bound in document-date SOURCE_MANIFEST.json. This closes contextual classification of the four historical direct accesses only. Current full re-extraction, non-catalogue/backend literal inventory and every-string sensitivity/caller review remain incomplete. No runtime user content was exported or translated externally.
|
||||
@@ -0,0 +1,11 @@
|
||||
# Document upload wall-clock date correction
|
||||
|
||||
3 November 2026. Independent ordinary application fix, branch `codex/i18n-document-dates` from published d4b938fa. Not integrated into A3 yet; no wholesale merge of this older integration-derived tree.
|
||||
|
||||
Reproduced: the document index accepted an ISO prefix and let JavaScript normalise invalid wall-clock components. `2026-02-30T09:15:00`, hour24, minute61 and trailing junk displayed plausible timestamps. Eight EN/NB regression cases failed before the fix; two valid fractional-second cases passed. These failures are retained in evidence/document-dates-red.json;21 unrelated cases were skipped in that focused red execution.
|
||||
|
||||
The existing uploaded-local branch now accepts the complete unzoned .NET-style timestamp (optional1–7 fractional digits) and round-trips all calendar/time fields before formatting. Invalid input uses the existing localised Date not recorded message and emits no fabricated time element. Valid wall-clock components remain unchanged across time zones using the existing UTC formatting carrier. The raw datetime attribute remains unchanged. No API date-kind semantics, server data, UTC-history formatting, document content, download behavior, revisions or navigation changes. No new locale key/dependency/schema.
|
||||
|
||||
Final validation: **40 tests /3 suites PASSED**, documents31 + provider6 + catalogue3. Tests include metadata filters/paging/history, source links, all seven resource kinds, download/focus/cancellation, ownership-safe read behavior, both languages, invalid dates and valid .NET fractional seconds. All document tests assert no POST/PUT/PATCH/DELETE. Typecheck, scoped zero-warning lint, production build and diff whitespace check PASSED. An intermediate command used a nonexistent catalogue-test filename:37 cases passed but that execution failed one suite; it is not counted as passing. Corrected final run uses translation-catalogue.test.ts. No fresh browser/backend/native/provider qualification.
|
||||
|
||||
Rollback: revert this bounded view/parser and test commit; no data rollback. Broader document UTC date validation, partial-date semantics outside this surface, DST/native reviews and full European locale architecture remain open. No release or production qualification inferred.
|
||||
@@ -0,0 +1,11 @@
|
||||
# Mobile build metadata localisation
|
||||
|
||||
3 November 2026. Independent bounded UI-language fix on `codex/i18n-build-metadata`, based on accepted integration `d3d338376444b8abdcaf7200f682faa3daf1ad10`. The existing i18n worktree was reused; original codex/i18n-accessible-labels ref remains4172c23d. This branch does not include the newer A3 foundation/navigation increments and must not replace their tree wholesale.
|
||||
|
||||
Defect reproduced: in the Bokmål mobile account menu, the version was translated but the revision line remained literal `commit abc1234`, while the existing catalogue already provides `applicationVersionCommit` with `revisjon`. The new regression passed for English and failed for Bokmål before the fix.
|
||||
|
||||
The existing AppShell now uses the existing combined localised version/revision message in that menu, retaining the version-only fallback when no commit was supplied. Caller-controlled admin metadata visibility is unchanged. No new keys, enabled locales, provider/model operation, API, data model or physical document changes. Historical188 dynamic-call reviews are not reopened or recounted; AppShell is absent from that resolution register. This is a static literal correction, not complete European localisation.
|
||||
|
||||
Validation: 24 targeted tests in five suites PASSED (new EN/NB commit and version-only menu checks plus existing metadata/visibility, mobile readiness, catalogue and language-provider checks). Typecheck, scoped zero-warning ESLint and a fresh static production build PASSED. An initial test used an unsupported Testing Library `exact` role option; removed it, retaining exact string-name matching. The failed intermediate typecheck/build were superseded by the final successful run. Native Jest report: evidence/mobile-build-metadata/TESTS.json. No fresh browser/native-device, provider, backend or integrated security qualification is claimed for this separate branch.
|
||||
|
||||
Integration requirement: preserve pending navigation review artifact992608c7. When the next relevant implementation entry is authorised, port only this small AppShell hunk and its regression test onto the reconciled A3 branch, then run combined navigation/metadata/language checks and build as appropriate. Do not cherry-pick older branch application/theme files or alter the original frozen translation register. No main merge or deployment.
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"base": "d4b938fafbf10541b62134293cea8299f25c4031",
|
||||
"recordedAtUtc": "2026-11-03T08:50:34.776817+00:00",
|
||||
"policy": "LF-normalised SHA256 text",
|
||||
"files": {
|
||||
"job-tracker-ui/src/views/DocumentsPage.tsx": "2a3187938d7f61cc1d723bae5b784f09707713606b523db176d6df6d05a91c3d",
|
||||
"job-tracker-ui/src/documents-page.test.tsx": "abfa8c4bef73499c0546f7e9b8a091793b8c273f829b51159ae115fc54aa4ed3",
|
||||
"job-tracker-ui/src/i18n/I18nProvider.tsx": "d22b5d033d0e405ffb5d581c752d61a24056d1e496f5f6a2f1baecef500f2113",
|
||||
"docs/i18n/00/DIRECT_CATALOGUE_ACCESS.json": "c470c52c500d79f51c4cedd073c2a8474ae73b832e531df3c0c38369993cae3f",
|
||||
"docs/i18n/DOCUMENT_DATE_VALIDATION.md": "602cd31d84eed1e59ed000159bdc8b998b0dbdc5b7c965ad51831d26a16b31d6",
|
||||
"docs/i18n/DIRECT_CATALOGUE_REVIEW.md": "4eb88d2d1da2ed0cd52d49fc8dc7f11d1943d169c240e56ae3562d298bc6eb6a",
|
||||
"docs/i18n/evidence/document-dates-tests.json": "227187b5a02473f442c8600b434e5f0922fa63ba13bfb9355254b9a19b7d4e81",
|
||||
"docs/i18n/evidence/document-dates-red.json": "430ec89f685c2558d443677c596a12b587829a9a45e3f29dc03e042d3685a074"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"recordedAtUtc": "2026-11-03T07:52:44.745521+00:00",
|
||||
"base": "d3d338376444b8abdcaf7200f682faa3daf1ad10",
|
||||
"policy": "UTF8 text/JSON SHA-256 after LF normalisation",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/layout/AppShell.tsx": "603afbe21d854ec4af7b17ec75a58cfdd65cc053e72d63769d20df7a81c7acc3",
|
||||
"job-tracker-ui/src/build-metadata-localisation.test.tsx": "065c5550a18f7b3c7dca9bbb26c5564a53a53eaf389e7c9695596fcbb2c06f6e",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "ed99d129f8702181429e10ec02f65f734220409fcba4de51d0d77a0d60871ea4",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab"
|
||||
},
|
||||
"testReport": "1c7fb362460f2475fb4a782e26b56d1ee112595c3883cd6294a5b7ac6d72dd15",
|
||||
"validation": {
|
||||
"tests": "24 passed,5 suites",
|
||||
"typecheck": "exit0",
|
||||
"scopedLint": "exit0",
|
||||
"productionBuild": "exit0"
|
||||
},
|
||||
"limits": [
|
||||
"no fresh browser/native acceptance",
|
||||
"not combined with pending A3 navigation review992608c7",
|
||||
"188 historical dynamic-call review remains unchanged"
|
||||
]
|
||||
}
|
||||
@@ -1,226 +0,0 @@
|
||||
# Jobjakt — A3 Final Design Approval and Implementation Authorisation
|
||||
|
||||
I approve **A3 as the final Jobjakt UI/UX design foundation** and authorise its phased implementation across the application.
|
||||
|
||||
I have reviewed the design direction and am happy with the result.
|
||||
|
||||
This approval includes the consolidated A3 prototype, its established design system, navigation approach, layouts and connected workflows.
|
||||
|
||||
## 1. Confirmed design decisions
|
||||
|
||||
Preserve the approved A3 combination:
|
||||
|
||||
- Original A1 dashboard.
|
||||
- D1 visual foundation.
|
||||
- B1 application tracking.
|
||||
- Labelled, grouped and collapsible desktop sidebar.
|
||||
- Hybrid mobile navigation.
|
||||
- CV editor on the left with live preview on the right.
|
||||
- Full application-detail pages with contextual information on the right.
|
||||
- Optional quick-preview panels.
|
||||
- Career Profile overview first, with immediate editing actions.
|
||||
- Calendar agenda first, with an optional month view.
|
||||
- Automation controls under Settings.
|
||||
- Contextual AI assistance.
|
||||
- Optional, resumable dashboard onboarding checklist with on-demand walkthroughs.
|
||||
|
||||
Maintain the selected light/dark visual treatment and consistent responsive behaviour.
|
||||
|
||||
Do not restart design exploration or generate another five concepts.
|
||||
|
||||
Minor adjustments for implementation feasibility, accessibility and usability are permitted.
|
||||
|
||||
Consult me before making substantial changes to the approved visual direction or user journeys.
|
||||
|
||||
## 2. Implementation approval
|
||||
|
||||
I authorise the actual implementation of the approved A3 redesign within the appropriate Jobjakt development branches.
|
||||
|
||||
This includes:
|
||||
|
||||
- Shared design system.
|
||||
- Typography and colours.
|
||||
- Navigation.
|
||||
- Dashboard.
|
||||
- Application tracking.
|
||||
- Application details.
|
||||
- Job discovery.
|
||||
- Career Profile.
|
||||
- CV Builder.
|
||||
- CV import.
|
||||
- Cover letters.
|
||||
- Calendar.
|
||||
- Correspondence.
|
||||
- Documents.
|
||||
- Settings.
|
||||
- Automation controls.
|
||||
- Administration.
|
||||
- Onboarding.
|
||||
- Mobile layouts.
|
||||
- Light/dark modes.
|
||||
- Accessibility improvements.
|
||||
|
||||
The implementation must cover the actual application, not merely reproduce static prototypes.
|
||||
|
||||
## 3. Preserve existing functionality
|
||||
|
||||
The design handoff identifies 57 preservation groups and 34 routes.
|
||||
|
||||
Treat these as mandatory preservation requirements.
|
||||
|
||||
Do not remove, simplify or hide advanced functionality merely because it was not shown in the prototypes.
|
||||
|
||||
Preserve:
|
||||
|
||||
- Existing user data.
|
||||
- Career Profile ownership and persistence.
|
||||
- CV revisions and undo/redo.
|
||||
- Document imports and exports.
|
||||
- Application records.
|
||||
- Authentication.
|
||||
- AI permissions and qualification restrictions.
|
||||
- Dashboard customisation.
|
||||
- Administrative permissions.
|
||||
- Existing integrations.
|
||||
- English/Norwegian support.
|
||||
- Future European localisation.
|
||||
- Database compatibility.
|
||||
- Existing accessibility functionality.
|
||||
|
||||
Maintain all relevant RD21 data-integrity protections.
|
||||
|
||||
## 4. Implementation sequence
|
||||
|
||||
Use the implementation milestones documented in the A3 handoff.
|
||||
|
||||
Subject to the authoritative dependencies and Phase 10 gates, organise implementation approximately as follows:
|
||||
|
||||
**UI-01 — Shared design system and navigation**
|
||||
|
||||
Implement foundational styles, typography, components, navigation, themes and responsive structures.
|
||||
|
||||
**UI-02 — Dashboard and applications**
|
||||
|
||||
Implement dashboard layouts, interactive widgets, application tracking, Kanban and application-detail experiences.
|
||||
|
||||
**UI-03 — Career Profile and CV workflows**
|
||||
|
||||
Implement the approved Career Profile, CV Editor, template, import and cover-letter experiences.
|
||||
|
||||
**UI-04 — Job discovery and application journeys**
|
||||
|
||||
Implement approved job-discovery layouts and connections to the existing application workflows.
|
||||
|
||||
Coordinate with INT-GLOBAL-JOBS-01 to avoid conflicting implementations.
|
||||
|
||||
**UI-05 — Supporting workflows**
|
||||
|
||||
Implement calendar, reminders, correspondence, documents, administration, settings and automation controls.
|
||||
|
||||
**UI-06 — Onboarding and mobile refinement**
|
||||
|
||||
Complete guided optional onboarding, mobile navigation, small-screen layouts and responsive interaction parity.
|
||||
|
||||
**UI-07 — Integrated qualification**
|
||||
|
||||
Run full preservation, accessibility, responsive, browser and application regression acceptance.
|
||||
|
||||
Use the authoritative A3 implementation plan where it specifies more precise dependencies or acceptance requirements.
|
||||
|
||||
## 5. Autonomous development
|
||||
|
||||
Continue working through the implementation milestones without asking me to approve every ordinary change.
|
||||
|
||||
You may autonomously:
|
||||
|
||||
- Implement approved designs.
|
||||
- Refactor affected frontend components.
|
||||
- Introduce reusable design-system components.
|
||||
- Improve responsive layouts.
|
||||
- Fix implementation defects.
|
||||
- Add tests.
|
||||
- Update translations.
|
||||
- Run regression checks.
|
||||
- Commit validated checkpoints.
|
||||
- Update documentation.
|
||||
|
||||
Pause only when a genuine owner decision, mandatory gate or substantial design change is required.
|
||||
|
||||
If a task is blocked, record the blocker and continue independently eligible work.
|
||||
|
||||
Do not bypass Phase 10 cleanup approvals, required integration baselines or other authoritative development-entry gates.
|
||||
|
||||
## 6. Coordinate with the remaining roadmap
|
||||
|
||||
Continue the existing direct roadmap execution.
|
||||
|
||||
Do not use the autonomous orchestrator.
|
||||
|
||||
Coordinate A3 implementation with:
|
||||
|
||||
- Phase 10.
|
||||
- Product Review.
|
||||
- International Global Job Search.
|
||||
- Full European localisation.
|
||||
- Multilingual homepage redesign.
|
||||
- Security audit.
|
||||
- Release readiness.
|
||||
|
||||
Avoid duplicate implementations and unnecessary rewrites.
|
||||
|
||||
Use established accepted baselines, isolated branches and documented dependencies.
|
||||
|
||||
Do not treat provisional mockup content as actual product functionality.
|
||||
|
||||
## 7. Validation requirements
|
||||
|
||||
For each implementation milestone:
|
||||
|
||||
- Run relevant frontend tests.
|
||||
- Run required backend tests where workflows are affected.
|
||||
- Validate browser journeys.
|
||||
- Validate mobile layouts.
|
||||
- Check keyboard accessibility.
|
||||
- Check translation behaviour.
|
||||
- Check light/dark modes.
|
||||
- Test preservation requirements.
|
||||
- Compare implementation against the approved A3 design.
|
||||
- Record regressions and failures.
|
||||
|
||||
The prototype validation results are useful design evidence, but they do not qualify the implemented application.
|
||||
|
||||
Real screen-reader, physical-device and human accessibility tests remain pending until actually completed.
|
||||
|
||||
Do not claim unperformed tests passed.
|
||||
|
||||
## 8. Git and release restrictions
|
||||
|
||||
The latest design checkpoint is `237c79b8`.
|
||||
|
||||
The roadmap continuation checkpoint is `286535be`.
|
||||
|
||||
Verify the actual commits, branches and ancestry before integrating work.
|
||||
|
||||
Preserve the existing worktrees and acceptance records.
|
||||
|
||||
Keep validated changes in development branches and commit checkpoints.
|
||||
|
||||
Do not spend time repairing Gitea as part of this design implementation.
|
||||
|
||||
If publication fails, preserve the local work, record the issue and continue eligible work without falsely claiming publication success.
|
||||
|
||||
Never merge into main or deploy production without explicit approval.
|
||||
|
||||
## 9. Final objective
|
||||
|
||||
Deliver the approved A3 experience throughout the real Jobjakt application.
|
||||
|
||||
I want a cohesive, modern, approachable and powerful product, with equally strong desktop and mobile experiences.
|
||||
|
||||
Preserve the application's advanced capabilities while making everyday workflows easier to understand and use.
|
||||
|
||||
**This is my final approval of the A3 design and authorisation to begin its staged development implementation.**
|
||||
|
||||
It is not approval for production deployment or for bypassing outstanding security and release gates.
|
||||
|
||||
Continue with the next authorised implementation milestone, maintaining durable progress reports and proceeding through independently eligible work without unnecessary interruptions.
|
||||
@@ -1,216 +0,0 @@
|
||||
# Jobjakt — Gate F Approval and Continued Autonomous Development
|
||||
|
||||
## Owner decision: APPROVED
|
||||
|
||||
I approve the **A3 UI-01 Foundation checkpoint under Gate F**.
|
||||
|
||||
The approved checkpoint includes:
|
||||
|
||||
- Updated palette and typography.
|
||||
- Shared UI controls.
|
||||
- Quieter, more consistent surfaces.
|
||||
- Light and dark theme foundations.
|
||||
- English and Norwegian compatibility.
|
||||
- Responsive foundation across the tested viewport widths.
|
||||
|
||||
Reported verification:
|
||||
|
||||
- 35 targeted tests passed.
|
||||
- 48 scoped browser/accessibility checks passed.
|
||||
- TypeScript typecheck passed.
|
||||
- Lint passed.
|
||||
- Build passed.
|
||||
- Application commit: `bdd1de0d`.
|
||||
- Latest branch receipt: `0d6de714`.
|
||||
- Remote publication verified.
|
||||
|
||||
This approval authorises progression beyond the foundation increment.
|
||||
|
||||
It does not constitute production acceptance or waive unperformed integration, accessibility, security or release testing.
|
||||
|
||||
## 1. Continue A3 implementation
|
||||
|
||||
Proceed immediately with the next authorised A3 milestone: **navigation**.
|
||||
|
||||
Preserve the approved A3 design direction:
|
||||
|
||||
- D1 visual foundation.
|
||||
- Original A1 dashboard.
|
||||
- B1 application tracking.
|
||||
- Labelled, grouped and collapsible desktop sidebar.
|
||||
- Hybrid mobile navigation.
|
||||
- CV editor left and live preview right.
|
||||
- Full application-detail pages with contextual information on the right.
|
||||
- Career Profile overview first.
|
||||
- Calendar agenda first, with month-view option.
|
||||
- Automation controls under Settings.
|
||||
- Contextual, optional AI assistance.
|
||||
- Optional, resumable onboarding.
|
||||
|
||||
Do not restart design exploration.
|
||||
|
||||
## 2. Complete as much authorised work as possible
|
||||
|
||||
I want you to continue development autonomously, making substantial progress without unnecessary interruptions.
|
||||
|
||||
After navigation, proceed through the remaining A3 milestones in their approved dependency order:
|
||||
|
||||
- Dashboard and application tracking.
|
||||
- Application details.
|
||||
- Career Profile.
|
||||
- CV Builder and import workflows.
|
||||
- Cover-letter editing.
|
||||
- Job discovery.
|
||||
- Calendar and correspondence.
|
||||
- Documents and administration.
|
||||
- Settings and automation.
|
||||
- Optional onboarding.
|
||||
- Responsive mobile refinement.
|
||||
- Integrated UI/UX qualification.
|
||||
|
||||
Follow the actual approved A3 implementation plan and existing preservation requirements.
|
||||
|
||||
For each increment:
|
||||
|
||||
1. Inspect the existing implementation.
|
||||
2. Implement the approved changes.
|
||||
3. Fix bounded defects.
|
||||
4. Run relevant tests.
|
||||
5. Validate responsive layouts and both themes.
|
||||
6. Verify English/Norwegian behaviour.
|
||||
7. Check accessibility.
|
||||
8. Verify preservation of existing functionality.
|
||||
9. Commit validated changes.
|
||||
10. Push where available.
|
||||
11. Record evidence and continuation status.
|
||||
12. Proceed to the next authorised increment.
|
||||
|
||||
Avoid repeatedly asking permission for ordinary reversible implementation decisions already covered by the approved design.
|
||||
|
||||
## 3. Milestone approvals
|
||||
|
||||
I want maximum autonomous progress, but genuine mandatory owner gates remain in force.
|
||||
|
||||
Where the approved implementation plan requires an owner milestone review:
|
||||
|
||||
- Complete the increment.
|
||||
- Prepare the review evidence and screenshots.
|
||||
- Record the exact proposed next scope.
|
||||
- Request the required approval.
|
||||
- Do not bypass that gate.
|
||||
|
||||
While awaiting approval, continue other independently authorised tasks that do not depend on the blocked milestone.
|
||||
|
||||
Do not treat my Gate F approval as blanket approval of all future protected gates.
|
||||
|
||||
Where the authoritative plan allows automatic progression, proceed without stopping.
|
||||
|
||||
## 4. Preserve the complete application
|
||||
|
||||
The A3 design handoff identifies 57 preservation groups and 34 routes.
|
||||
|
||||
Ensure every existing function remains available unless removal has been separately authorised and qualified.
|
||||
|
||||
Pay particular attention to:
|
||||
|
||||
- Career Profile persistence.
|
||||
- CV revisions and undo/redo.
|
||||
- Existing CV and cover-letter documents.
|
||||
- Imports and exports.
|
||||
- Authentication and account security.
|
||||
- Job application data.
|
||||
- Dashboard customisation.
|
||||
- Administration permissions.
|
||||
- RD21 data-integrity protections.
|
||||
- Existing integrations and automations.
|
||||
|
||||
Do not simplify away advanced features merely because they were absent from a design prototype.
|
||||
|
||||
## 5. Continue the wider roadmap
|
||||
|
||||
Continue independently eligible work across:
|
||||
|
||||
1. Phase 10 completion and acceptance.
|
||||
2. PRODUCT-REVIEW-01.
|
||||
3. International Global Job Search.
|
||||
4. Full European localisation.
|
||||
5. A3 application UI/UX implementation.
|
||||
6. Multilingual homepage redesign.
|
||||
7. Security audit and remediation.
|
||||
8. Release-readiness preparation.
|
||||
|
||||
Respect dependencies, explicit owner decisions and authoritative acceptance gates.
|
||||
|
||||
Coordinate Global Job Search, translations and A3 so their implementations do not conflict.
|
||||
|
||||
Do not repeat accepted work unnecessarily.
|
||||
|
||||
## 6. Blockers and continuation
|
||||
|
||||
If a task cannot proceed:
|
||||
|
||||
- Record the exact blocker.
|
||||
- Identify its impact and dependency.
|
||||
- Preserve completed work.
|
||||
- Continue another independently eligible task.
|
||||
- Revisit the blocker only when new evidence or an approval makes progress possible.
|
||||
|
||||
Maintain the existing durable roadmap continuation records.
|
||||
|
||||
Do not build or reactivate the autonomous orchestrator.
|
||||
|
||||
Do not spend development time fixing unrelated Git infrastructure issues.
|
||||
|
||||
Never claim unsuccessful publication or unperformed tests passed.
|
||||
|
||||
## 7. Validation expectations
|
||||
|
||||
Continue targeted verification throughout development.
|
||||
|
||||
Run broader regression suites when required by the approved milestone gates.
|
||||
|
||||
Keep these statuses distinct:
|
||||
|
||||
- Implemented.
|
||||
- Tested.
|
||||
- Accepted.
|
||||
- Published.
|
||||
- Production-ready.
|
||||
|
||||
The UI-01 browser checks do not qualify real backend journeys, native-device accessibility or integrated security.
|
||||
|
||||
Those requirements remain open.
|
||||
|
||||
## 8. Git and production restrictions
|
||||
|
||||
Use the existing authorised development branches and worktrees.
|
||||
|
||||
Verify the correct integration baseline before combining workstreams.
|
||||
|
||||
Commit and publish validated checkpoints when possible.
|
||||
|
||||
Do not merge into `main`.
|
||||
|
||||
Do not deploy production.
|
||||
|
||||
Do not activate unqualified AI models.
|
||||
|
||||
Do not perform destructive migrations without approval.
|
||||
|
||||
## Final instruction
|
||||
|
||||
**Gate F is approved for the A3 UI-01 Foundation checkpoint.**
|
||||
|
||||
Proceed immediately to navigation implementation.
|
||||
|
||||
Then continue through as much of the remaining authorised A3 overhaul and wider Jobjakt roadmap as possible.
|
||||
|
||||
Prioritise completing functional, integrated user journeys rather than accumulating disconnected partial implementations.
|
||||
|
||||
Minimise unnecessary interruptions.
|
||||
|
||||
Pause only for genuine mandatory decisions, and continue independent work whenever another task is blocked.
|
||||
|
||||
Keep the roadmap, test evidence and remaining approval items updated.
|
||||
|
||||
Do not merge into main or deploy production.
|
||||
@@ -1,39 +0,0 @@
|
||||
# A3-IM02 navigation validation and review
|
||||
|
||||
Status: implemented and tested; owner Gate F navigation review remains OPEN before dashboard/onboarding A3-IM03. Foundation Gate F is already accepted, not reopened. See UI-02.md for preserved owners and exact next scope.
|
||||
|
||||
## Fresh scoped evidence
|
||||
|
||||
| Check | Result / scope |
|
||||
|---|---|
|
||||
| Baseline | 15 tests / 3 suites PASSED before navigation edits; BASELINE.json |
|
||||
| New primary-navigation tests | Five expected failures before implementation; desktop preservation case already passed |
|
||||
| Current-route regression | Reproduced drawer staying open; fixed in shared handler; red/green case retained |
|
||||
| Final selected Jest run | 49 tests / 9 suites PASSED; FINAL_TESTS.json. Intermediate32/17 and reviewer11 overlap this total, not extra cases |
|
||||
| Typecheck / lint / production build | PASSED; built static export used API base /api for controlled loopback checks |
|
||||
| Real React screen matrix | 32 conditions: login + Companies × 320/390/768/1440 × EN/NB × light/dark |
|
||||
| Dialog and navigation accessibility | 56 scoped axe sweeps, zero returned violations: 32 complete screen surfaces, 16 company dialogs, 8 mobile More drawers |
|
||||
| Connected browser checks | 16 configurations: primary route selection and heading focus, secondary navigation, collapse persistence or More/Escape/current-route selection, reviewed synthetic company edit/save and phone notification clearance |
|
||||
| Primary routes | All four primary shell destinations visited in each configuration (64 transitions). API-unavailable content states are permitted; this verifies navigation/focus, not successful domain/backend journeys |
|
||||
| Write safety | 16 explicit company PUTs intercepted and fulfilled by local browser fixtures; zero requests reached a backend. Unexpected write methods/paths rejected; no unexpected writes or page exceptions observed |
|
||||
| Captures | 56 PNGs: 32 screens + 8 More drawers + 8 collapsed desktop/tablet + 8 phone notification states |
|
||||
| Preservation census | All 57 inherited groups retained; all 34 inherited route declarations present. Source membership is not complete functional or authorisation acceptance |
|
||||
| Independent source review | No important/critical findings. Conservative extra safe-area clearance noted; native notched-device review still pending |
|
||||
|
||||
The browser lane is the actual built React application, with controlled service responses, not the design prototype. It rejects every external request; 40 existing Google Fonts attempts were aborted. Provider/model/production services were never contacted. Only Companies has a successful synthetic mutation fixture; other core destination content may display honest unavailable-service states. No model was started. Main document/page renderer sources are unchanged.
|
||||
|
||||
During verification, a mistyped translation test path produced a failed harness run (two real suites/eight cases passed); corrected to the existing catalogue/provider files, then final nine-suite run passed. A broad alert selector also matched Next's route announcer; narrowed to the actual Snackbar feedback. These are resolved harness defects, not hidden passing tests. Layout review reproduced broken English labels at320px: content-based flex widths with minimum44px targets fixed them while retaining11px labels and long-text wrapping. The final browser assertions require Dashboard and Applications to fit one line in English.
|
||||
|
||||
No original concepts were regenerated. No route, advanced workflow, permission, document revision, schema, dependency, controller or production configuration was removed. Route declarations are unchanged; navigation grouping is changed deliberately. Existing admin visibility flags, router/legacy redirects, quick search, notification count semantics, desktop storage and ownership disposal remain in their existing owners.
|
||||
|
||||
## Review examples
|
||||
|
||||
- [Phone navigation](evidence/navigation/companies-en-light-320.png).
|
||||
- [Bokmål dark desktop](evidence/navigation/companies-nb-dark-1440.png).
|
||||
- [More drawer](evidence/navigation/more-en-light-390.png).
|
||||
- [Notification above the bar](evidence/navigation/feedback-nb-dark-320.png).
|
||||
- [Collapsed sidebar](evidence/navigation/collapsed-en-light-1440.png).
|
||||
|
||||
Run the installed harness from job-tracker-ui against the current static export on loopback port4338: `rtk proxy node scripts/verify-a3-theme.mjs --navigation`. This mode writes only evidence/navigation; historical foundation artifacts stay unchanged. SOURCE_MANIFEST.json binds final source, native reports, captures and exported assets. Historical foundation source hashes remain bound to bdd1de0d, not falsely reused as new navigation results.
|
||||
|
||||
NOT RUN: real database/backend workflows, hosted CI, real identity/mail/job providers, AI models, physical PDF/container requalification, native screen reader/touch/software keyboard, actual browser zoom, native-language review, final integrated security or release-readiness acceptance. Those gates remain separate. Full A3 UI/UX implementation is not complete.
|
||||
@@ -1,38 +0,0 @@
|
||||
# UI-01 — approved A3 foundation implementation
|
||||
|
||||
Status: A3-IM01 foundation ACCEPTED under Gate F by explicit owner attachment a178edeb-c3ef-4c0e-b4c2-bcd1ca84b90b, 3 November 2026. Do not repeat that approval request. Navigation A3-IM02 proceeds on codex/a3-ui-02; see UI-02.md. Original implementation branch `codex/a3-ui-01`, isolated integration worktree. Base `d3d338376444b8abdcaf7200f682faa3daf1ad10`; design source `237c79b8cb3e280d7e4d1ef95cdbb2c77bb81c69`; roadmap receipt `286535bef046417a09a156685c937e8be9155147`.
|
||||
|
||||
Owner's 3 November 2026 attachment explicitly approves the final A3 foundation and staged real-application implementation. Verbatim authorisation is retained in A3_APPROVAL.md. Gates C/D/E are approved for that scope; deployment, Phase 10, security/provider/native/device/release gates are not waived.
|
||||
|
||||
## Task ledger and verification plan
|
||||
|
||||
- [x] Verify branch/commits and use accepted integration baseline; preserve existing worktrees. Created implementation branch in the already isolated integration worktree, keeping its original branch ref unchanged. No wholesale merge of the older design tree.
|
||||
- [x] Baseline: four existing theme/dialog suites, 28 tests PASSED before production edits.
|
||||
- [x] A3-IM01: approved D1 palette, typography, quiet surfaces and shared controls implemented through existing theme.ts. Added visual-contract regression checks; retained semantic contrast, theme/system persistence, focus, reduced-motion, density and dialog checks.
|
||||
- [x] Targeted tests, types, lint, production build and actual application browser checks in EN/NB, both themes and mobile/desktop. See VALIDATION.md for exact source scopes and pending human/zoom checks.
|
||||
- [x] Validated checkpoint `bdd1de0dd3259e4e9e9f46c81948f865317c6054` committed, pushed to origin/codex/a3-ui-01 and independently confirmed by git ls-remote. No infrastructure repair. Subsequent documentation receipts do not change this immutable application/evidence identity.
|
||||
- [x] Gate F foundation review approved by the owner in GATE_F_FOUNDATION_APPROVAL.md. Navigation is A3-IM02, separately implemented and reviewed.
|
||||
|
||||
Scope reaches the existing ThemeProvider and every MUI theme consumer, including navigation semantic colours and shared fields/buttons/cards/dialogs. Preserve component APIs, routes, application state, server data ownership, RD21 and physical CV/PDF renderers. No dependency, API or database changes. Existing semantic status colours must retain readable contrast on all new surfaces; dividers are decorative and do not replace stronger essential field boundaries.
|
||||
|
||||
Ruling: use targeted shared-theme/dialog/state checks and relevant browser workflows rather than thousands of unrelated tests, following the owner's explicit evidence/testing instructions. Backend tests are unnecessary unless backend behaviour is changed. Prototype tests are not application qualification.
|
||||
|
||||
Ruling: approved global MUI roles will also be inherited by existing public React consumers; this is shared theme plumbing, not selection or implementation of a new homepage layout/claims/SEO. Keep the existing gradient API and physical document rendering untouched. Later launch-site decisions remain separate.
|
||||
|
||||
Rollback: revert this UI increment on its development branch; no persisted data/schema change. Re-run affected theme/layout checks. Never reset unrelated work or alter the autonomous orchestrator.
|
||||
|
||||
## Implemented behaviour
|
||||
|
||||
Shared MUI theme now uses approved violet canvas/text/accent/navigation roles in both schemes; existing state synchronisation/storage remains unchanged. App chrome uses the approved system font stack, more readable body rhythm and responsive page-title hierarchy. Shared cards use restrained borders without floating section shadows. Buttons use sentence case and 44px base height; outlined fields retain their notched focus indicator and now have a 44px base height. Existing density hit-region rules remain in force. Actual navigation structure and feature layouts are not represented as implemented yet.
|
||||
|
||||
Contrast verification exposed the old dark error role at 4.275:1 on the new elevated surface. Corrected dark error main/darker fills to #FF8A80/#FF7067 with explicit dark contrast text; thresholds were not lowered. Final semantic contrast tests pass, and code review checked standard alert text against composited surfaces. CV/template/letter previews use isolated document HTML; physical renderer source, fonts, metrics, fixtures and historical document acceptance were not changed.
|
||||
|
||||
Independent code review: no important/critical findings. Accepted minor recommendation to assert every collected scoped axe violation array, rather than only colour contrast. Reviewer's 16 theme tests overlap the final 30 and must not be added to them. Initial two-width browser artifact was superseded by the final four-width run, not added as extra coverage.
|
||||
|
||||
## Continuation and review gate
|
||||
|
||||
Actual selected validation: 30 theme/state/dialog tests in five suites plus five disjoint navigation/CV-thumbnail tests in two suites; baseline28 and review16 are overlapping and excluded from that35. Full typecheck/lint/build passed. Final actual React browser lane:32 screen conditions,16 keyboard dialog journeys,48 scoped axe sweeps with zero returned violations,32 screenshots, zero page exceptions or attempted backend writes. All32 existing Google font requests aborted. No physical document or native/human acceptance reopened.
|
||||
|
||||
Historical pre-approval gate note (now satisfied by the explicit attachment above): the approved design handoff `docs/product-modernisation/08-a3-handoff/IMPLEMENTATION_PROPOSAL.md` at design checkpoint237c79b8, A3-IM01 row says "Owner milestone review before next increment." User's ordinary-implementation authorisation persists; do not ask about individual reversible changes after the relevant milestone entry is authorised.
|
||||
|
||||
Next UI task after that review: retain all34 routes and57 groups while implementing the approved labelled grouped/collapsible desktop sidebar and hybrid mobile navigation through existing AppShell/router owners. Do not merge this branch into main or activate deployment. The original codex/direct-roadmap-integration ref remains at d3d33837; its existing isolated worktree is currently checked out on codex/a3-ui-01. Generated graph is untracked (18,714 nodes/46,204 edges). Design approval record b7051a3e is local-only on the prototype branch; do not publish that restricted branch.
|
||||
@@ -1,27 +0,0 @@
|
||||
# A3-IM02 — navigation
|
||||
|
||||
Status: IMPLEMENTED and TESTED; Gate F navigation review OPEN before the next dependent increment. Branch codex/a3-ui-02 from approved foundation receipt 0d6de714. Owner attachment a178edeb-c3ef-4c0e-b4c2-bcd1ca84b90b explicitly accepts foundation Gate F and authorises navigation; later protected milestone reviews remain separate. Verbatim approval: GATE_F_FOUNDATION_APPROVAL.md. Publication receipt is recorded in the continuing roadmap handoff.
|
||||
|
||||
Review [navigation evidence and screenshots](NAVIGATION_VALIDATION.md): final 49 tests / 9 suites; typecheck/lint/build; 56 scoped browser accessibility sweeps with zero violations; 56 captures; 16 configurations with primary/secondary navigation, focus/persistence, controlled company save and phone feedback clearance. No live backend qualification. Native/human/device/zoom and final integrated security/release gates remain open.
|
||||
|
||||
Tasks: inspect existing owners/callers and baseline tests; add failing mobile/route-preservation tests; implement five-destination hybrid navigation through AppShell, promote Discovery in existing App nav groups, retain every secondary tool/permission/route; reserve mobile clearance for feedback and actions; verify targeted tests, typecheck/lint/build, actual controlled-API browser journeys in both languages/themes/viewport classes; commit/push/read back; prepare next scope and required Gate F review.
|
||||
|
||||
No API/schema/dependency or physical document changes. Existing theme/state/router/dialog/toast owners remain. Keep desktop collapse persistence, route-heading focus, skip link, command palette, notification semantics, account menus, legacy redirects and admin guards. Use existing 768px small breakpoint for hybrid mobile navigation, matching compact header controls and the approved tablet sidebar arrangement.
|
||||
|
||||
Baseline navigation/notification/readiness results remain separate from final totals. UI-01's35/48 evidence qualifies its own foundation scope only. After this increment, A3-IM03 dashboard/onboarding and A3-IM04 application layouts await the source-defined next milestone review; other independent roadmap work may progress while that decision is pending.
|
||||
|
||||
## Implemented scope
|
||||
|
||||
The existing AppShell now provides Dashboard, Applications, Discover, Career and More on phones. More and the existing header trigger open the same accessible MUI drawer, retaining all secondary destinations. Career includes builder deep links; Applications includes job/detail/legacy aliases. Secondary tools select More. Visible primaries are derived from the existing permitted navigation tree; hidden ancestors are pruned. No new route or permission system.
|
||||
|
||||
Desktop retains labelled/grouped navigation, whole-sidebar collapse persistence and secondary menus. Discovery is now a primary Job Search item. Reminders, correspondence, analytics and existing Operations are workspace destinations; companies/offers/trash, CVs/documents, accounts and admin tools remain accessible. No route declarations removed or rewritten.
|
||||
|
||||
The bottom bar is measured, so wrapped labels/safe areas reserve actual space in main padding, native scroll clearance and existing Snackbar positioning. Notifications and feedback remain above the bar. Desktop/public contexts retain zero bar clearance. Native notched-device review remains pending; existing safe-area padding adds a conservative extra gap after the measured bar.
|
||||
|
||||
Regression found/fixed: choosing the current destination returned before closing the mobile drawer. The shared handler now closes it and focuses the heading after the transition, while Escape still returns to the opener. Red/green unit regression and browser checks cover it. No unsaved-document guard, persistence, API or physical renderer is replaced.
|
||||
|
||||
Independent read-only review found no important/critical findings; reviewer 11 tests overlap the final selected suite and are not additional evidence. All 188 historical dynamic-call reviews remain accounted for; four new static EN/NB navigation keys were added with catalogue parity checks. No new European language was advertised or enabled.
|
||||
|
||||
## Next proposed scope / protected review
|
||||
|
||||
Gate F navigation review required before dependent A3-IM03. Proposed next scope: approved A1 dashboard hierarchy and optional resumable onboarding using existing DashboardView/grid/layout/checklist owners; preserve schema-2/CAS, hidden positions/gaps, collision handling, drag/resize/keyboard alternatives, existing-data completion, skip/resume and notification behaviour. No schema migration, new provider/model or loss of widgets. Then prepare that increment's targeted state/browser/preservation evidence and review. Existing A3 approvals persist; request only this mandatory milestone entry, not a new overall design choice.
|
||||
@@ -1,33 +0,0 @@
|
||||
# A3-IM01 — implementation validation
|
||||
|
||||
3 November 2026. This qualifies a bounded shared-theme increment in the actual React application. It does not qualify the entire A3 redesign, Phase 10, Product Review, international discovery, European localisation, security or release readiness.
|
||||
|
||||
| Check | Result | Scope |
|
||||
|---|---|---|
|
||||
| Existing baseline | PASSED: 28 tests / 4 suites | Theme contrast/state, loaded company states and dialog flow before edits. BASELINE.json |
|
||||
| A3 visual contract before implementation | FAILED as expected: 2 tests | Old light/dark canvas values differed from approved A3; no production code had been changed |
|
||||
| First new-palette regression | FAILED, corrected | Dark error text 4.275:1 on new elevated surface; changed colour, retained 4.5 threshold |
|
||||
| Final targeted theme/state/dialog tests | PASSED: 30 / 5 suites | Includes the baseline 28 and 2 new A3 visual-contract cases; not 58 independent tests. THEME_TESTS.json |
|
||||
| Additional preservation checks | PASSED: 5 / 2 suites | Existing CV thumbnail/template rendering and shell navigation; disjoint from the 30 theme/state/dialog cases. PRESERVATION_TESTS.json |
|
||||
| Typecheck | PASSED | npm run typecheck, no incremental cache |
|
||||
| Lint | PASSED | npm run lint, zero-warning policy |
|
||||
| Static production build | PASSED | npm run build with NEXT_PUBLIC_API_BASE_URL=/api for controlled loopback browser checks; no deployment |
|
||||
| Actual React screen matrix | PASSED: 32 conditions | Login and loaded Companies × 320/390/768/1440px × EN/NB × light/dark |
|
||||
| Company dialog keyboard journeys | PASSED: 16 | Keyboard edit/open, visible focus, Escape and focus return; actual MUI controls |
|
||||
| Scoped axe sweeps | PASSED: 48, zero returned violations | 32 main surfaces + 16 dialogs; rule tags WCAG2 A/AA, 2.1AA, 2.2AA. Excludes shell/navigation from the main-surface sweep; not full WCAG conformance |
|
||||
| Actual form validation | PASSED: 16 screen variants | Empty login submit marks required fields invalid and focuses first field; no authentication POST |
|
||||
| Root reflow / colours / locale | PASSED in screen matrix | Actual built app body palette and html lang/scheme, no root overflow at the tested widths |
|
||||
| Source review | PASSED for bounded patch | Independent reviewer found no important/critical issue; physical document frames/renderers retain font ownership |
|
||||
| Graph | AST-only refresh completed | Generated graph untracked; no model/semantic graph call |
|
||||
|
||||
`evidence/BROWSER.json` records every screen/dialog scope, page exceptions, attempted writes and blocked external requests; `scripts/verify-a3-theme.mjs` reproduces it from the static export served locally on port 4338 by the existing serve-export script. All API responses are controlled synthetic fixtures, all write methods are rejected, and every remote request is aborted. No backend, production data, model, identity provider or mailbox was contacted. This is actual application rendering with controlled service responses, not live-service acceptance.
|
||||
|
||||
The first browser run reached all its two-width screen/dialog assertions but failed its final no-external-attempt assertion because the existing page head requests Google Fonts. The harness was corrected to permit only that **blocked** known font origin, retaining all aborts and rejecting any unexpected origin. The final four-width run supersedes that result. No remote font was downloaded. Removal/localisation of existing font imports requires separate caller/renderer review; it was not performed here.
|
||||
|
||||
Lint initially rejected CommonJS require imports in the new browser harness. Converted the harness to the project's existing ES-module script convention rather than suppressing lint rules or changing lint configuration. The final .mjs run and full lint supersede the failed intermediate harness check. No application source changed during this conversion.
|
||||
|
||||
Evidence has 32 populated screen screenshots. The built application's sidebar structure is still the existing one: only its shared semantic colours changed. Do not present these captures as completed A3 navigation or A1 dashboard implementation. The prototype's 480 conditions/50 axe sweeps are separate historical design evidence and are not included in these application counts.
|
||||
|
||||
NOT RUN: real backend flows, full application regression, native screen reader, physical touch/software keyboard, actual browser zoom, native-language review, final integrated security, live provider/model, physical PDF/container requalification, backup/restore or hosted CI. Source-defined acceptance for those scopes remains open. Pending zoom/human checks prevent a claim of complete accessibility acceptance.
|
||||
|
||||
Reproduce sequentially from job-tracker-ui with installed dependencies: targeted Jest paths recorded in native JSON reports, npm run typecheck, npm run lint, NEXT_PUBLIC_API_BASE_URL=/api npm run build, serve-export on local port 4338, then `rtk proxy node scripts/verify-a3-theme.mjs`. Rebuild when application source changes; the evidence manifest binds source and exported assets to this checkpoint.
|
||||
@@ -1,505 +0,0 @@
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"writes": [],
|
||||
"blockedExternalRequests": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"scope": "actual static-export React application with controlled API; existing remote font requests aborted; no backend or provider qualification"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":2,"numPassedTests":5,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":2,"numTotalTests":5,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1793671502665,"success":true,"testResults":[{"assertionResults":[{"ancestorTitles":[],"duration":66,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"template thumbnails retain distinct server-rendered samples in noninteractive sandboxed frames","invocations":1,"location":null,"numPassingAsserts":6,"retryReasons":[],"startAt":1793671505757,"status":"passed","title":"template thumbnails retain distinct server-rendered samples in noninteractive sandboxed frames"}],"endTime":1793671505824,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\cv-template-thumbnail.test.tsx","startTime":1793671503519,"status":"passed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":258,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"language controls identify Bokmål with its native name and language code","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793671506673,"status":"passed","title":"language controls identify Bokmål with its native name and language code"},{"ancestorTitles":[],"duration":108,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P5-01 PRES-E07 E08] grouped navigation exposes the current child without marking the parent as the page","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793671506931,"status":"passed","title":"[P5-01 PRES-E07 E08] grouped navigation exposes the current child without marking the parent as the page"},{"ancestorTitles":[],"duration":222,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P5-01 PRES-E07 E08] collapsed secondary destinations remain keyboard-operable","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793671507039,"status":"passed","title":"[P5-01 PRES-E07 E08] collapsed secondary destinations remain keyboard-operable"},{"ancestorTitles":[],"duration":142,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P5-01 PRES-E08] successful shell navigation focuses the new route heading and exposes a skip link","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793671507261,"status":"passed","title":"[P5-01 PRES-E08] successful shell navigation focuses the new route heading and exposes a skip link"}],"endTime":1793671507403,"message":"","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\app-shell-navigation.test.tsx","startTime":1793671505840,"status":"passed","summary":""}],"wasInterrupted":false}
|
||||
@@ -1,150 +0,0 @@
|
||||
{
|
||||
"recordedAtUtc": "2026-11-03T02:07:53.565494+00:00",
|
||||
"base": "d3d338376444b8abdcaf7200f682faa3daf1ad10",
|
||||
"design": "237c79b8cb3e280d7e4d1ef95cdbb2c77bb81c69",
|
||||
"policy": "Text and JSON LF-normalised SHA-256; PNG/exported asset bytes raw",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/theme.ts": "6b3c28a2a920e53e01ed9ee12ee2f5cdaa0fe7c3752415a97ca544c82fce8cfa",
|
||||
"job-tracker-ui/src/ThemeProvider.tsx": "1d25fd091ca632f7671e413db24e917d4ca4a375fddade0ca1ff397a8ae9f950",
|
||||
"job-tracker-ui/src/themePrefs.ts": "d775741cd6b2fc7ac59dca13e5e6cf5ffd3856cf4a2e011948b2dfb0d9c319ca",
|
||||
"job-tracker-ui/src/themeBootstrap.ts": "0035725a9d43077ede757c1f20382465a6f04511b63fb22ac65adcfb8ce5f2d0",
|
||||
"job-tracker-ui/src/a3-theme-contract.test.ts": "039382d49d84f84df81d583079f217a21ca0be4b9c90c82f2da744998fbfe73d",
|
||||
"job-tracker-ui/scripts/verify-a3-theme.mjs": "3d550137be4500b0a1711b88d34d01592ab33e2b9dad261a19b033dc4db609c0",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab",
|
||||
"job-tracker-ui/src/App.tsx": "28d906c0f04d82da41125d4722a04dce2b2c1573e333b68a0ef83018d6f94c9f",
|
||||
"docs/pre-phase10-ux/preservation.json": "a4c2a5a0244ea89381008218de32daee1f615a250eb3808b60e0ee103c674d4d",
|
||||
"docs/ui-modernisation/A3_APPROVAL.md": "54243c73fcb15e9c03b81e2c6ee3cb0ed3485067891243a33da9eb83fb383fca"
|
||||
},
|
||||
"evidence": {
|
||||
"BASELINE.json": "2cf5b006ab9a3c499be32c0e3c3e4aff69708819b6516c6044b8db835dbfab74",
|
||||
"BROWSER.json": "f16dd11c041d3f9a57474acc8f3efd71639f048448894f9c1d97b114996d4261",
|
||||
"companies-en-dark-1440.png": "26ef08a0df3b17e33499cc2a0a6a78916702e4bed6d9254bfb60f23deaf0d6c3",
|
||||
"companies-en-dark-320.png": "b18d4e604f40a17bfdf2624d5823c17d467e03583beccc0e497893ee51c735ce",
|
||||
"companies-en-dark-390.png": "8f17a05b8b22cced76ef47326863b8317ed71ea2807db301cf762ad2f869ac28",
|
||||
"companies-en-dark-768.png": "ba34903cae2b5de339b667e3e6817b821c46e761d8467d876e1ca2bd0ce0202e",
|
||||
"companies-en-light-1440.png": "7ae163a26e395005cc09b2cca8f492ec64b52aae19be6251ef169f6f62a9645c",
|
||||
"companies-en-light-320.png": "bc4d8a94bf354c0968ea47d97bd59b56e42fa9e9730a4e59d4671060062f8b0d",
|
||||
"companies-en-light-390.png": "b01d0ffb8ca2703bc75dcf5ab1c34ac442737ba5d5f9792a1627eb959f665553",
|
||||
"companies-en-light-768.png": "826d7b6707f238703a0a4a74d81c1e5542bcc7f4d1da876e12557fce003b31b9",
|
||||
"companies-nb-dark-1440.png": "579072333acc7fefd677277083f9c9d2792523ef12d7ace02afe973f47c36c7f",
|
||||
"companies-nb-dark-320.png": "62795143d79221b2711077d5c0cdd5766d920418036f18340221a018c845e2a4",
|
||||
"companies-nb-dark-390.png": "e10db421d105c130e7265667b03f8018a934a826ecfcf2500880f89a3379590e",
|
||||
"companies-nb-dark-768.png": "fe2003b73991b7b80c206a0b2baa8fce90c9a994a24d0ab9813aa018e94b5c12",
|
||||
"companies-nb-light-1440.png": "6b3c2f917fb33db424f81be3777969122504455f380db3e5729cad26475487a2",
|
||||
"companies-nb-light-320.png": "5b8b170cdd93f9ee73049a9e307f3c7e8663c640f6cdd3b5e657d519c194f796",
|
||||
"companies-nb-light-390.png": "d18c51480b8fb8f75247118f3bbaeec55f0702e29a988aaf07bc143caf0ae913",
|
||||
"companies-nb-light-768.png": "b430df3421e72a6040730d5dff90e8584cb7926452d537d6fa5ac50353b742a8",
|
||||
"login-en-dark-1440.png": "7f14b204ac297a11d0f66ae14630fc178db576003f5739c8837c0d89a8c671b5",
|
||||
"login-en-dark-320.png": "1349497aa9a8c69135fd65a1b033c235519fea6158574df0bfe480168366fbe6",
|
||||
"login-en-dark-390.png": "e1bc62e9622daed83e702bece9fbbde56a0eb8b44d662436c3c88884dee53571",
|
||||
"login-en-dark-768.png": "398df1bc62c65b52808dfc4060a15f3ddda4ecd53600e1f0f1f48116d46330e8",
|
||||
"login-en-light-1440.png": "adf362ed3cb066a868d466317a5a5f1f9e32e80292d780a43b435e67d8250229",
|
||||
"login-en-light-320.png": "4b0c2f278b6224969bf8d16e73a4bce317948b6fa9b5f2a46ddb4c1692848455",
|
||||
"login-en-light-390.png": "526ae4c4c998c766ad4cb55ccce65db6dd6448c6ca3a88d5fa497d17ffff006a",
|
||||
"login-en-light-768.png": "569319b19e4bb37955a805778a87ca4dfd2b13c4c8c33c4ea9d2e0418f9e25cd",
|
||||
"login-nb-dark-1440.png": "e3dfcad81696cb40e33acae6b2ae9553eb773d5c02e84f9b5974f978a2345389",
|
||||
"login-nb-dark-320.png": "810c6f9b9dd368de5836620004f777b6c7bfd38d20bd6f9a41bef43082ae40b6",
|
||||
"login-nb-dark-390.png": "5dd78b744b92c33f70f40848c905a26f38184324cf77f51caf3d947d59d22902",
|
||||
"login-nb-dark-768.png": "a95543cb6c60c308f756d4f16f480be75d20b03fd9ab855ad3abcd56434bda2c",
|
||||
"login-nb-light-1440.png": "4ca9d0de9a2aaf217c484073f0b3ffffba91d33bfaceef313bc748ec3ad19cc3",
|
||||
"login-nb-light-320.png": "d2d9729bcc9c3cf8d3b8044c9b6e63d463a84b2f7aabb362ca5b7bebd9538804",
|
||||
"login-nb-light-390.png": "7fd0429224e620c58552a9e1ada72e830eb10b3ef392b76f0074a4e6d343f42f",
|
||||
"login-nb-light-768.png": "8f7d2a44913d5cc3dc835b9bde07f04fd56a300cc9bf502a34825777eb02cb74",
|
||||
"PRESERVATION_TESTS.json": "e3e0007714e0ea38daf016516f8442ec785ca6f588f6ffafe915723a32c34fd6",
|
||||
"THEME_TESTS.json": "eaccb949dc12cfc0845292bde4dfe2cda1a8af7c107357c52dc68aa2c4c3f195"
|
||||
},
|
||||
"exportAssets": {
|
||||
"404.html": "44f4f5ea405e5f3c283757c06815b9d76b80ccded65975710f79eb08cc686fe9",
|
||||
"favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"index.html": "62802e5c9baf3cbb913a5602d23193265f35e68b70b262b262d509b5ad8d9e41",
|
||||
"index.txt": "f0e4bed88cef037cb296f31ccdada5fa0698b673ea8816de1e1901f7a5cf7510",
|
||||
"logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c",
|
||||
"_not-found.html": "44f4f5ea405e5f3c283757c06815b9d76b80ccded65975710f79eb08cc686fe9",
|
||||
"_not-found.txt": "6ee9df2ea06c8d6b46b4a2e397cbb0a209381f31125f5aa60d790ad65f2c7e5f",
|
||||
"__next._full.txt": "f0e4bed88cef037cb296f31ccdada5fa0698b673ea8816de1e1901f7a5cf7510",
|
||||
"__next._tree.txt": "b9100c9cbea4f7b3ba2f511d63c7d4b9d82ddf8b305cbefc4709fde4e99f742b",
|
||||
"__next.__PAGE__.txt": "a9259f14c2060132db3929f867737f869b58e47eeb73f7306a101565860da7f6",
|
||||
"mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"_not-found/__next._full.txt": "6ee9df2ea06c8d6b46b4a2e397cbb0a209381f31125f5aa60d790ad65f2c7e5f",
|
||||
"_not-found/__next._tree.txt": "128650e2c58388ed26616d9820dcbd1a477dbc1f8674d57742c69b584ced1f94",
|
||||
"_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"_next/static/chunks/07vdc-duql714.js": "5a4840d1ba6b65782459968940a2f4cf973c99f0f77890f4171c4f420f339353",
|
||||
"_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"_next/static/chunks/0bwvt3mysnclc.js": "7705667a1b75812b7833d9c9dff47fe023015e58e382c40f4507d9948c973af4",
|
||||
"_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"_next/static/chunks/0enhs8x_8oeah.js": "44c76f6178d407e1f147fdf70015fd05c21e58ed220fc922d23dfd1e0f8631bd",
|
||||
"_next/static/chunks/0jcvc3qm6-lyk.js": "7c27e1fe373b822adc68c63096a5bf38444ad605b9743f0920271652989c56f1",
|
||||
"_next/static/chunks/0lxzrfwn1fphq.js": "1f1792240611f3fabb14afa6b66f80de20b035a3d0ceee2e40f5f6f589129774",
|
||||
"_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"_next/static/chunks/0w69-xg9od0ja.js": "88a7bd64f4fddf57cdbf3e993be2a44e48d5b313e434038bc9a7337d107ae162",
|
||||
"_next/static/chunks/11-48p8kygxgp.js": "57eb9059599b5a5a30598d0a334912d58af571c0ffe28448ca76ad77c8ea8df9",
|
||||
"_next/static/chunks/13uq1xe3s3l_c.js": "dd5b46dbf29a692062dcedc2604ff9c254db1abfcf9d39f30ab96b2de87d1707",
|
||||
"_next/static/chunks/14-lfugawba2w.js": "6a5780ca3c84d7f130f3c0a14431c85c7a1e799e2645b8c171161dab40a64360",
|
||||
"_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"_next/static/chunks/154b5a6du9olf.js": "49e4df3a3e10119ddc34f84767883b9228ff6798a07fd759c2fb8e2be62fe9fb",
|
||||
"_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"_next/static/chunks/1d0xrdyyzw7qc.js": "c11668ff1e152008e0d7b4454af12eb36c97df46a5860938e2eb5d8429b374a8",
|
||||
"_next/static/chunks/1h7j7ef9e6i41.js": "cb6cd497566dc188b67d09b9c031ef9bbf36f2b85d0aac02621f56daa44faa34",
|
||||
"_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"_next/static/chunks/1m3dt58dmprbw.js": "3a80b00707e6a884a03fa636260511585f1760f37c24fd4861ead110e6b3e985",
|
||||
"_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"_next/static/chunks/1vlgr-jtg9qr0.js": "6e41421a30b7313860e86c2069ed9dde394e29d004eeb42af46b2d2d124a1acb",
|
||||
"_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"_next/static/chunks/1zi8i6dnxiac_.js": "8aea28bbe6a138e5d4b619429ca71570883a7aee974b86d5a4a746d90f704dbc",
|
||||
"_next/static/chunks/21n31t_q2ou2m.js": "bbd6a5dc061a64d5b7817babeeb5c2f90aae8ba21cff54fea1064c39f497af6a",
|
||||
"_next/static/chunks/22uh2tvaw80j2.js": "dafe6b4e23dc5c1d32f8b4a60c561238d2d5e7545f23ebc5b3f7304b48626dbf",
|
||||
"_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"_next/static/chunks/245ibf0f31ne8.js": "8b27ab5d720bd278b5d73a7e824bfcccf4cc893ced9fa6f1937bb2bc7a65f967",
|
||||
"_next/static/chunks/280cq9ekejv1f.js": "01de8c1c3555cdd8d711763065ea9d8aec2968c3053f61254e43e26c999027bf",
|
||||
"_next/static/chunks/2br3ad_-bc7k9.js": "80fa55f7a32db4d743fda36747c36994fde00a0f53f2eb25b2a6d07c6fb97cd7",
|
||||
"_next/static/chunks/2gd9s_n-0nl1p.js": "31e2811be51a3c4d0ff2d1e3cea756e7fd8d57ef89141b5de69f638c1301d039",
|
||||
"_next/static/chunks/2j9f-6w2x4auf.js": "a23068fc68514dcaa1375de8802bf7f9bdfc561835e4fe47b9e6fe8f7372f85c",
|
||||
"_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"_next/static/chunks/2u5qve004opku.js": "be388d9a6aa423082bafb4584c3facc65ddfed71bcfa5c1d06b097b408c5ff97",
|
||||
"_next/static/chunks/2wae6urahmel1.js": "ae86575883781981cc373601a07009101d81eba801f40d4607e6f3f168777a5b",
|
||||
"_next/static/chunks/2xlg4_1fj8fxh.js": "8ab4ba521db0167f3dbf684787ebf643cbc66fa7ffff7cdc65a8d8076a926155",
|
||||
"_next/static/chunks/2z42el0b2mp8_.js": "86ff990ef32c90c4839583e4f1d1bcbddb165dad3141b9fcd2ecec67f4ff24b8",
|
||||
"_next/static/chunks/334vtqp3-g1j6.js": "c33d42da97f3af7388e29273297e9f42c67f54b7f5ec77a5d0637e2da06d7f7e",
|
||||
"_next/static/chunks/3720519r84mh6.js": "54358db392a13914e3363046d594e824b1a3ef987913d95002bf48267dded4aa",
|
||||
"_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"_next/static/chunks/3ckk_j5ril9ag.js": "87f631dae7b648d32171e9e05a3e000753ecb54f8d3b86a4401c0e4ab4d73553",
|
||||
"_next/static/chunks/3f96r6vscobou.js": "d4b452ff3f1433f8fe1df705a8f592326f51b5a8846e6c2790d28df5a977aed3",
|
||||
"_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"_next/static/chunks/3mowdlh-jq9ii.js": "2c6ccd1500d28ec0c7312cb08ee221f0e4184ba21465ee166a054aa9a6c7f3ed",
|
||||
"_next/static/chunks/3os11ovm65tyl.js": "c5a908bd61f53f0d75927efb71e53aef8fdd9b2e4fef412a167990dbc702c166",
|
||||
"_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"_next/static/chunks/3q80eur194l-9.js": "7b52d29843c23a0ed74056eeb1704de14488f36e9d05f2f8271434c61051dce0",
|
||||
"_next/static/chunks/3u61o8t7m_jza.js": "86231c12e0f8cacc8638bed0bc4b34f645fc35e60de342dc154d3cce0c9a5afa",
|
||||
"_next/static/chunks/40y_aqqilokr2.js": "1f5a5260316134d6bffe949400752ee6b42addf908ae714ef4ae4ebde916dddd",
|
||||
"_next/static/chunks/43b5x8qjjh3ax.js": "6ee7261cf9a63e0e6ea181bbb09125e09948588b6e10b5c02727c686a6062a3a",
|
||||
"_next/static/chunks/442d7ylb3po0z.js": "d95cedfbdcd00c674fd718cbbf391ec01c0728018b0db2461a06df7074049132",
|
||||
"_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"_next/static/ibUkuY7Y_5wUxZxd0jW38/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"_next/static/ibUkuY7Y_5wUxZxd0jW38/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"_next/static/ibUkuY7Y_5wUxZxd0jW38/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"_not-found/__next._not-found/__PAGE__.txt": "b29ec33fb211daa1fd701159576a82422aecee42bc24fa6927e28f4e22e3df0c"
|
||||
},
|
||||
"commands": {
|
||||
"typecheck": "npm run typecheck: exit 0",
|
||||
"lint": "npm run lint: exit 0",
|
||||
"build": "NEXT_PUBLIC_API_BASE_URL=/api npm run build: exit 0",
|
||||
"browser": "node scripts/verify-a3-theme.mjs: exit 0"
|
||||
},
|
||||
"limits": [
|
||||
"synthetic API fixture browser lane",
|
||||
"Google font requests aborted, not downloaded",
|
||||
"no backend or native-device/security/release acceptance"
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 21 KiB |
@@ -1,797 +0,0 @@
|
||||
{
|
||||
"rows": [
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "more-navigation",
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(255, 255, 255)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "login",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "companies",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"geometry": {
|
||||
"overflow": false,
|
||||
"background": "rgb(40, 35, 52)"
|
||||
},
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"screen": "company-dialog",
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"writes": [],
|
||||
"mockedWrites": [
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
},
|
||||
{
|
||||
"method": "PUT",
|
||||
"path": "/api/companies/7"
|
||||
}
|
||||
],
|
||||
"journeys": [
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 320,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 390,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "PASS"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
},
|
||||
{
|
||||
"width": 768,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "en",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "light",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
},
|
||||
{
|
||||
"width": 1440,
|
||||
"language": "nb",
|
||||
"mode": "dark",
|
||||
"secondaryNavigation": "PASS",
|
||||
"fourCoreRoutesAndHeadingFocus": "PASS (API-unavailable states allowed)",
|
||||
"focusAndPersistence": "PASS",
|
||||
"controlledCompanySave": "PASS",
|
||||
"mobileFeedbackClearance": "not applicable"
|
||||
}
|
||||
],
|
||||
"blockedExternalRequests": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
],
|
||||
"scope": "actual static-export React application with controlled API; existing remote font requests aborted; no backend or provider qualification"
|
||||
}
|
||||
@@ -1,178 +0,0 @@
|
||||
{
|
||||
"recordedAtUtc": "2026-11-03T07:46:44.593102+00:00",
|
||||
"base": "0d6de71403015b0e44ca410d0ce2b844b75b893d",
|
||||
"policy": "Text/JSON LF-normalised SHA-256; PNG/export bytes raw",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/layout/AppShell.tsx": "b516ada49d5a5413eac471ab44f89f7f8a745b3bf4a7212616768f8d2559670d",
|
||||
"job-tracker-ui/src/App.tsx": "fd265b5ee48bdd2becc9aea7fb885c3ace9e56dc00943a91b2a3f8d336caf33c",
|
||||
"job-tracker-ui/src/toast.tsx": "8f11b9ecce244a99a7cc7b6d247751e24089f8396a834924a4fa1eb421ab17bc",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "1e7aee4b9df920058044286f6e0a63eb893bf9eead3f303a7f01ee4d2c9fea77",
|
||||
"job-tracker-ui/src/a3-navigation.test.tsx": "942c3adc70bc2108c8fb75ea871239254751556ae3d1222f2c63bf836f7616f6",
|
||||
"job-tracker-ui/scripts/verify-a3-theme.mjs": "3c044657b1c9fbc3006fa3a1f2610d254ce6265814d79393fdca692062513ad9",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab",
|
||||
"docs/pre-phase10-ux/preservation.json": "a4c2a5a0244ea89381008218de32daee1f615a250eb3808b60e0ee103c674d4d",
|
||||
"docs/ui-modernisation/GATE_F_FOUNDATION_APPROVAL.md": "8cd8b31d677c5c7e3124e0331b3bfe13ae361e90b98ab97eec3fbb83530e1639"
|
||||
},
|
||||
"evidence": {
|
||||
"BASELINE.json": "67fad14774c31354249b54b0d40d45baf7302ac2ab26861cf8a3641b133f94da",
|
||||
"BROWSER.json": "ded63b6d43ddb2d904d80ccd1e1283ed9bda76fedabd43cdfd6ef99299e7243a",
|
||||
"collapsed-en-dark-1440.png": "89c098d674d43e56b6e4f434278eb44a20ced9817bc18aadb642c353f0c328d1",
|
||||
"collapsed-en-dark-768.png": "936ea505ccfedbea72763fb1877037956ff0976554e318d4838886cf0ad33643",
|
||||
"collapsed-en-light-1440.png": "544358fdc5327e490ac826121d5adf88f84502781bacfb9b650ef565f65bf46e",
|
||||
"collapsed-en-light-768.png": "777fba6160ff7dc87c8c6a97bca8b85552703834f1e78fdc656bcbf068df4641",
|
||||
"collapsed-nb-dark-1440.png": "715644887d40046dede401f346999953462db4436b0aeaa5a429d203b380b615",
|
||||
"collapsed-nb-dark-768.png": "f9ef73455c5c6cc313063e0cc7945efcdc64d3923ff262ad4de66918e2073775",
|
||||
"collapsed-nb-light-1440.png": "dd4320d18b8e898ebba9361e22c1bdb09f86700ac7affb8dfaf9565b4cad1806",
|
||||
"collapsed-nb-light-768.png": "02da521d7bf4a755f8adadf2ab6fe7b2fb56a4a93e5fe23f76c8acf634231590",
|
||||
"companies-en-dark-1440.png": "0c3bafb43beeab05a19312d6b33086ce089175d936ea17764178c81a3911493d",
|
||||
"companies-en-dark-320.png": "1eb42c34116dd7b972c291fc4f80f8f8482402daee389f26f5ca4be6614c33af",
|
||||
"companies-en-dark-390.png": "af24cd3d86c868fc057111274621dfd95f38c97b5b70c747d928c151965c821d",
|
||||
"companies-en-dark-768.png": "7d0d122233207967ff0ec37fe5de88a6824b6088417bce7ebd7b1368b7920f7c",
|
||||
"companies-en-light-1440.png": "71c83d2bb0dccd3d4f2d90af3aca82ad157e791002f2ce4e9f5df438dc21e078",
|
||||
"companies-en-light-320.png": "6ae58c6d0aa964cc4c18d058a711c2fd3e2614bd0c6adb2050c50ef7fd7a5397",
|
||||
"companies-en-light-390.png": "414dae0566c6be5493810acce73aca6a0d61c541b7cd749595ff598176a01fbe",
|
||||
"companies-en-light-768.png": "2d1bbba81ac1e1062b71b5a7c5c113c62de4a8be85b7c0580274a99a2f798026",
|
||||
"companies-nb-dark-1440.png": "03179678bfc251480f48ebbe12d7d4e9e31e5bc382da9de0694540fca2d5d4b5",
|
||||
"companies-nb-dark-320.png": "f8218d2ffc85d1aebf5677f00f858b437c3bf597e34bd38ebe57f99112601dad",
|
||||
"companies-nb-dark-390.png": "0a6de884928d15983272704204568164fb11f6e7ecc504d38454d5a655f645f1",
|
||||
"companies-nb-dark-768.png": "e856ee248af99fdf57613f4e5c1e930176e169d46b94c20e57fa9b6f6c792d49",
|
||||
"companies-nb-light-1440.png": "552c658be5043c9fa8ed14c44d1a9fd43d3a91c4b6dfec5c36bc0e09562c3976",
|
||||
"companies-nb-light-320.png": "93f40c3d125240801dc56b377907de05930cd31df9da93b2e57a5ac1e69e6b26",
|
||||
"companies-nb-light-390.png": "a5184e3df93d46643342c70301fdd6ffce6696c2b75ab1cf1bf2bce00fe089d3",
|
||||
"companies-nb-light-768.png": "bff700939bac8cbf2f3b4e03881a60c76db9fc4a359279ade563c4a7cd16b4ae",
|
||||
"feedback-en-dark-320.png": "48771faddeb78afbdd693541df4e3f2f8cd1fb2e9c8b54b500d00a26361d9ff9",
|
||||
"feedback-en-dark-390.png": "8824caf71d48387f422274f37ec1d83efd220f2f95eee0e0ec0e04a90da3831f",
|
||||
"feedback-en-light-320.png": "a38fba6a3683110f66d0fd42d16170028471265d5189183be18f9adee176c1c0",
|
||||
"feedback-en-light-390.png": "1eaad948f9de93dbbfe3e976e05514a57141e4ad87ee64e5d3a460c4a259c5bb",
|
||||
"feedback-nb-dark-320.png": "b7162617c848d9dd315c11f648bc9b39ef71a623b3427f6daa16e8bc6e6c27a3",
|
||||
"feedback-nb-dark-390.png": "f3eb38a303e6ce5770c348b1c3424c01d2e68c78ab4940a323a292411b962006",
|
||||
"feedback-nb-light-320.png": "a390116a6495f5692a8a7dac8dcd4fc9db198df0734e20c06915e4164affa687",
|
||||
"feedback-nb-light-390.png": "14299f29e9fcb20961829b83e9cd883bd66a9518af868e0b85367c6c8da660b4",
|
||||
"FINAL_TESTS.json": "21b49ca8c4adaacc4dd452404884dc0b67f7a4a4756301ca33e363c972ddd600",
|
||||
"login-en-dark-1440.png": "7f14b204ac297a11d0f66ae14630fc178db576003f5739c8837c0d89a8c671b5",
|
||||
"login-en-dark-320.png": "1349497aa9a8c69135fd65a1b033c235519fea6158574df0bfe480168366fbe6",
|
||||
"login-en-dark-390.png": "e1bc62e9622daed83e702bece9fbbde56a0eb8b44d662436c3c88884dee53571",
|
||||
"login-en-dark-768.png": "398df1bc62c65b52808dfc4060a15f3ddda4ecd53600e1f0f1f48116d46330e8",
|
||||
"login-en-light-1440.png": "adf362ed3cb066a868d466317a5a5f1f9e32e80292d780a43b435e67d8250229",
|
||||
"login-en-light-320.png": "4b0c2f278b6224969bf8d16e73a4bce317948b6fa9b5f2a46ddb4c1692848455",
|
||||
"login-en-light-390.png": "526ae4c4c998c766ad4cb55ccce65db6dd6448c6ca3a88d5fa497d17ffff006a",
|
||||
"login-en-light-768.png": "569319b19e4bb37955a805778a87ca4dfd2b13c4c8c33c4ea9d2e0418f9e25cd",
|
||||
"login-nb-dark-1440.png": "e3dfcad81696cb40e33acae6b2ae9553eb773d5c02e84f9b5974f978a2345389",
|
||||
"login-nb-dark-320.png": "810c6f9b9dd368de5836620004f777b6c7bfd38d20bd6f9a41bef43082ae40b6",
|
||||
"login-nb-dark-390.png": "5dd78b744b92c33f70f40848c905a26f38184324cf77f51caf3d947d59d22902",
|
||||
"login-nb-dark-768.png": "a95543cb6c60c308f756d4f16f480be75d20b03fd9ab855ad3abcd56434bda2c",
|
||||
"login-nb-light-1440.png": "4ca9d0de9a2aaf217c484073f0b3ffffba91d33bfaceef313bc748ec3ad19cc3",
|
||||
"login-nb-light-320.png": "d2d9729bcc9c3cf8d3b8044c9b6e63d463a84b2f7aabb362ca5b7bebd9538804",
|
||||
"login-nb-light-390.png": "7fd0429224e620c58552a9e1ada72e830eb10b3ef392b76f0074a4e6d343f42f",
|
||||
"login-nb-light-768.png": "8f7d2a44913d5cc3dc835b9bde07f04fd56a300cc9bf502a34825777eb02cb74",
|
||||
"more-en-dark-320.png": "c40fa318464e71220074095671b4204aacdc580d28462e6f63f89dc8b9019405",
|
||||
"more-en-dark-390.png": "d605efae414d22759abf1f6c2d6b56505a85aae2e49290c437a036e647efe2fa",
|
||||
"more-en-light-320.png": "f55d3eb6423f420d6438bddfa4ee1347f16ceef1fdaf58bf60170f58b2e5f95f",
|
||||
"more-en-light-390.png": "eea3f9b9bca407723645eb266023f53da1833f6a87e4e0871b4724855175287e",
|
||||
"more-nb-dark-320.png": "3af1e4a296d29219f32913fb79aecb2b1e6359f46d86c467d9e020dc0b98116a",
|
||||
"more-nb-dark-390.png": "a2f19eeefd7d077e3aedb657c61416dac7ce0000fab1a9d1992a02a64a138776",
|
||||
"more-nb-light-320.png": "4c79c58da9cfecd01c35c428d6e8cc98c8e4205ff365052e2b9ec9df9c710222",
|
||||
"more-nb-light-390.png": "54848beb7ed01226788dbd62e4f4aa45fa6b0253be039b39415ab7f4294ef74d",
|
||||
"SHARED_TESTS.json": "1dbbd317110e00e83344941ec7578542f5e6f9b3fa8eeb6adeb19aee1e64fb6b",
|
||||
"UNIT_TESTS.json": "127986cfa13d1fe8e2024b3bf9bcaa24c1adcccac9e34223ce2aed81f9adad72"
|
||||
},
|
||||
"exportAssets": {
|
||||
"404.html": "be85dab7930ce2d3afff57d5cea21753da8d5f5d5847f1f87151898c7ba5ed8c",
|
||||
"favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"index.html": "d1cde190ecd4d266098238c9eb566aed0a14f6adc909a21dac8f30d498e20946",
|
||||
"index.txt": "f9809ba4b178f1f2f893e65ec53293aa04abc41b85ab3814002653f5b44fe20e",
|
||||
"logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c",
|
||||
"_not-found.html": "be85dab7930ce2d3afff57d5cea21753da8d5f5d5847f1f87151898c7ba5ed8c",
|
||||
"_not-found.txt": "76b3b505fbb882825436e514500b4c04e38f9a24b454ab25dec0d1d024988de8",
|
||||
"__next._full.txt": "f9809ba4b178f1f2f893e65ec53293aa04abc41b85ab3814002653f5b44fe20e",
|
||||
"__next._tree.txt": "aec474b5548964c46a5f55304277e41f8093d1c17039e09eda89ccb79271d78b",
|
||||
"__next.__PAGE__.txt": "f8e8e320e738c2e1aafbb89e8e3db352ab95b93ab3b58c5c6a08762f2aef9841",
|
||||
"mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"_not-found/__next._full.txt": "76b3b505fbb882825436e514500b4c04e38f9a24b454ab25dec0d1d024988de8",
|
||||
"_not-found/__next._tree.txt": "199ddca5d061f9b16dde7b8be711c042f987ed81fa2d6a3768a3319a7c0194b5",
|
||||
"_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"_next/static/chunks/07vdc-duql714.js": "5a4840d1ba6b65782459968940a2f4cf973c99f0f77890f4171c4f420f339353",
|
||||
"_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"_next/static/chunks/0bwvt3mysnclc.js": "7705667a1b75812b7833d9c9dff47fe023015e58e382c40f4507d9948c973af4",
|
||||
"_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"_next/static/chunks/0enhs8x_8oeah.js": "44c76f6178d407e1f147fdf70015fd05c21e58ed220fc922d23dfd1e0f8631bd",
|
||||
"_next/static/chunks/0jcvc3qm6-lyk.js": "7c27e1fe373b822adc68c63096a5bf38444ad605b9743f0920271652989c56f1",
|
||||
"_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"_next/static/chunks/0w69-xg9od0ja.js": "88a7bd64f4fddf57cdbf3e993be2a44e48d5b313e434038bc9a7337d107ae162",
|
||||
"_next/static/chunks/11-48p8kygxgp.js": "57eb9059599b5a5a30598d0a334912d58af571c0ffe28448ca76ad77c8ea8df9",
|
||||
"_next/static/chunks/14-lfugawba2w.js": "6a5780ca3c84d7f130f3c0a14431c85c7a1e799e2645b8c171161dab40a64360",
|
||||
"_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"_next/static/chunks/154b5a6du9olf.js": "49e4df3a3e10119ddc34f84767883b9228ff6798a07fd759c2fb8e2be62fe9fb",
|
||||
"_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"_next/static/chunks/1d0xrdyyzw7qc.js": "c11668ff1e152008e0d7b4454af12eb36c97df46a5860938e2eb5d8429b374a8",
|
||||
"_next/static/chunks/1h7j7ef9e6i41.js": "cb6cd497566dc188b67d09b9c031ef9bbf36f2b85d0aac02621f56daa44faa34",
|
||||
"_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"_next/static/chunks/1m3dt58dmprbw.js": "3a80b00707e6a884a03fa636260511585f1760f37c24fd4861ead110e6b3e985",
|
||||
"_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"_next/static/chunks/1vlgr-jtg9qr0.js": "6e41421a30b7313860e86c2069ed9dde394e29d004eeb42af46b2d2d124a1acb",
|
||||
"_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"_next/static/chunks/1zi8i6dnxiac_.js": "8aea28bbe6a138e5d4b619429ca71570883a7aee974b86d5a4a746d90f704dbc",
|
||||
"_next/static/chunks/22uh2tvaw80j2.js": "dafe6b4e23dc5c1d32f8b4a60c561238d2d5e7545f23ebc5b3f7304b48626dbf",
|
||||
"_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"_next/static/chunks/245ibf0f31ne8.js": "8b27ab5d720bd278b5d73a7e824bfcccf4cc893ced9fa6f1937bb2bc7a65f967",
|
||||
"_next/static/chunks/280cq9ekejv1f.js": "01de8c1c3555cdd8d711763065ea9d8aec2968c3053f61254e43e26c999027bf",
|
||||
"_next/static/chunks/2br3ad_-bc7k9.js": "80fa55f7a32db4d743fda36747c36994fde00a0f53f2eb25b2a6d07c6fb97cd7",
|
||||
"_next/static/chunks/2gd9s_n-0nl1p.js": "31e2811be51a3c4d0ff2d1e3cea756e7fd8d57ef89141b5de69f638c1301d039",
|
||||
"_next/static/chunks/2j9f-6w2x4auf.js": "a23068fc68514dcaa1375de8802bf7f9bdfc561835e4fe47b9e6fe8f7372f85c",
|
||||
"_next/static/chunks/2n_psazr8t23q.js": "3e7bfb295ecb0762b9dc8dccd5668edb64bff78fe8e4cc8f612d8bac2fc16b9e",
|
||||
"_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"_next/static/chunks/2u5qve004opku.js": "be388d9a6aa423082bafb4584c3facc65ddfed71bcfa5c1d06b097b408c5ff97",
|
||||
"_next/static/chunks/2wae6urahmel1.js": "ae86575883781981cc373601a07009101d81eba801f40d4607e6f3f168777a5b",
|
||||
"_next/static/chunks/2xlg4_1fj8fxh.js": "8ab4ba521db0167f3dbf684787ebf643cbc66fa7ffff7cdc65a8d8076a926155",
|
||||
"_next/static/chunks/2z42el0b2mp8_.js": "86ff990ef32c90c4839583e4f1d1bcbddb165dad3141b9fcd2ecec67f4ff24b8",
|
||||
"_next/static/chunks/334vtqp3-g1j6.js": "c33d42da97f3af7388e29273297e9f42c67f54b7f5ec77a5d0637e2da06d7f7e",
|
||||
"_next/static/chunks/3720519r84mh6.js": "54358db392a13914e3363046d594e824b1a3ef987913d95002bf48267dded4aa",
|
||||
"_next/static/chunks/38uwdnzoq4mmb.js": "42ad35e141ec01a0d0a284951f72b2ffa90ee870326002627eacccba075a87f7",
|
||||
"_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"_next/static/chunks/3ckk_j5ril9ag.js": "87f631dae7b648d32171e9e05a3e000753ecb54f8d3b86a4401c0e4ab4d73553",
|
||||
"_next/static/chunks/3f96r6vscobou.js": "d4b452ff3f1433f8fe1df705a8f592326f51b5a8846e6c2790d28df5a977aed3",
|
||||
"_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"_next/static/chunks/3mowdlh-jq9ii.js": "2c6ccd1500d28ec0c7312cb08ee221f0e4184ba21465ee166a054aa9a6c7f3ed",
|
||||
"_next/static/chunks/3os11ovm65tyl.js": "c5a908bd61f53f0d75927efb71e53aef8fdd9b2e4fef412a167990dbc702c166",
|
||||
"_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"_next/static/chunks/3q80eur194l-9.js": "7b52d29843c23a0ed74056eeb1704de14488f36e9d05f2f8271434c61051dce0",
|
||||
"_next/static/chunks/3rqmk-kmybpa1.js": "415b5e1e89db5c9e0f6ec829c569a128cbc3c9f9043aa01894551f35bfff543e",
|
||||
"_next/static/chunks/3u61o8t7m_jza.js": "86231c12e0f8cacc8638bed0bc4b34f645fc35e60de342dc154d3cce0c9a5afa",
|
||||
"_next/static/chunks/40y_aqqilokr2.js": "1f5a5260316134d6bffe949400752ee6b42addf908ae714ef4ae4ebde916dddd",
|
||||
"_next/static/chunks/43b5x8qjjh3ax.js": "6ee7261cf9a63e0e6ea181bbb09125e09948588b6e10b5c02727c686a6062a3a",
|
||||
"_next/static/chunks/442d7ylb3po0z.js": "d95cedfbdcd00c674fd718cbbf391ec01c0728018b0db2461a06df7074049132",
|
||||
"_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"_next/static/ZpcwfMZAXooqQp2hPpeha/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"_next/static/ZpcwfMZAXooqQp2hPpeha/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"_next/static/ZpcwfMZAXooqQp2hPpeha/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"_not-found/__next._not-found/__PAGE__.txt": "8d787d28cec56b6df3db3caf0c41548c2c509ab4c27878961613bcb30a32d4b7"
|
||||
},
|
||||
"preservation": {
|
||||
"groups": 57,
|
||||
"routesPresent": 34,
|
||||
"qualification": "source membership only; inherited statuses retained"
|
||||
},
|
||||
"checks": {
|
||||
"typecheck": "exit0",
|
||||
"lint": "exit0",
|
||||
"build": "exit0 NEXT_PUBLIC_API_BASE_URL=/api",
|
||||
"browser": "exit0 node scripts/verify-a3-theme.mjs --navigation"
|
||||
},
|
||||
"limits": [
|
||||
"controlled API;16 mocked company PUTs;no real backend writes",
|
||||
"40 font requests aborted",
|
||||
"not full application/human/native/provider/security/release acceptance"
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 55 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 17 KiB |