Skip to content

feat(web): align neutral metadata capsules with Hearth roles - #238

Open
Joncallim wants to merge 1 commit into
codex/npm-audit-express5from
codex/67-hearth-metadata-capsules
Open

feat(web): align neutral metadata capsules with Hearth roles#238
Joncallim wants to merge 1 commit into
codex/npm-audit-express5from
codex/67-hearth-metadata-capsules

Conversation

@Joncallim

Copy link
Copy Markdown
Owner

Summary\n- align neutral Tag and reference-chip geometry/type to the committed public Hearth token export\n- preserve DockerMap’s compact tag block density, state-pill semantics, topology filter semantics, and AI Copilot suggestion treatment\n- add a source-level regression contract for neutral capsule roles and protected exceptions\n\n## Validation\n-

added 256 packages, and audited 260 packages in 2s

55 packages are looking for funding
run npm fund for details

6 vulnerabilities (3 moderate, 3 high)

To address all issues, run:
npm audit fix

Run npm audit for details.\n-

@dockermap/web@0.1.0 test
vitest run --passWithNoTests --run src/no-external-fonts.test.ts

RUN v4.1.9 /tmp/dockermap-67-hearth-metadata-capsules/apps/web

Test Files 1 passed (1)
Tests 4 passed (4)
Start at 00:28:04
Duration 138ms (transform 21ms, setup 0ms, import 32ms, tests 4ms, environment 0ms)\n-

dockermap-monorepo@0.1.0 typecheck
npm run typecheck --workspaces --if-present

@dockermap/api@0.1.0 typecheck
tsc --project tsconfig.json

@dockermap/web@0.1.0 typecheck
tsc --project tsconfig.json

@dockermap/contracts@0.1.0 typecheck
tsc --project tsconfig.json\n-
dockermap-monorepo@0.1.0 test:web
npm run test --workspace @dockermap/web --if-present

@dockermap/web@0.1.0 test
vitest run --passWithNoTests

RUN v4.1.9 /tmp/dockermap-67-hearth-metadata-capsules/apps/web

Test Files 32 passed (32)
Tests 315 passed (315)
Start at 00:28:10
Duration 2.57s (transform 5.77s, setup 0ms, import 11.99s, tests 4.14s, environment 8.92s) (315 tests)\n-

dockermap-monorepo@0.1.0 build
npm run build --workspaces --if-present

@dockermap/api@0.1.0 build
npm run build --workspace @dockermap/contracts && tsc --project tsconfig.json

@dockermap/contracts@0.1.0 build
tsc --project tsconfig.build.json

@dockermap/web@0.1.0 build
tsc --project tsconfig.json && vite build

vite v8.0.16 building client environment for production...
�[2K
transforming...✓ 68 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html 0.51 kB │ gzip: 0.31 kB
dist/assets/index-Crr1uQV3.css 35.03 kB │ gzip: 7.39 kB
dist/assets/index-asD96VqX.js 383.37 kB │ gzip: 112.09 kB

✓ built in 237ms

@dockermap/contracts@0.1.0 build
tsc --project tsconfig.build.json\n-
dockermap-monorepo@0.1.0 test:e2e:a11y
playwright test --config tests/e2e/playwright.config.ts a11y.spec.ts

Running 77 tests using 1 worker

✓ 1 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: home (1.2s)
✓ 2 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: map (996ms)
✓ 3 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: runtime (1.0s)
✓ 4 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: changes (742ms)
✓ 5 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: copilot (766ms)
✓ 6 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: networking (870ms)
✓ 7 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: network-detail (809ms)
✓ 8 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: storage (794ms)
✓ 9 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: volume-detail (844ms)
✓ 10 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: images (829ms)
✓ 11 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: image-detail (817ms)
✓ 12 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: logs (869ms)
✓ 13 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: compose (750ms)
✓ 14 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: diagnostics (772ms)
✓ 15 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: settings (913ms)
✓ 16 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: service-detail (987ms)
✓ 17 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core dark: not-found (744ms)
✓ 18 tests/e2e/a11y.spec.ts:87:9 › responsive and accessibility matrix › axe dark: token screen (613ms)
✓ 19 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe dark: service tab overview (1.0s)
✓ 20 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe dark: service tab dependencies (998ms)
✓ 21 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe dark: service tab resources (1.0s)
✓ 22 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe dark: service tab logs (957ms)
✓ 23 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe dark: service tab configuration (1.0s)
✓ 24 tests/e2e/a11y.spec.ts:112:9 › responsive and accessibility matrix › axe dark: service configuration internals expanded (1.1s)
✓ 25 tests/e2e/a11y.spec.ts:125:11 › responsive and accessibility matrix › axe dark: network disclosure collapsed (1.7s)
✓ 26 tests/e2e/a11y.spec.ts:134:11 › responsive and accessibility matrix › axe dark: network disclosure expanded (1.2s)
✓ 27 tests/e2e/a11y.spec.ts:125:11 › responsive and accessibility matrix › axe dark: volume disclosure collapsed (880ms)
✓ 28 tests/e2e/a11y.spec.ts:134:11 › responsive and accessibility matrix › axe dark: volume disclosure expanded (924ms)
✓ 29 tests/e2e/a11y.spec.ts:125:11 › responsive and accessibility matrix › axe dark: image disclosure collapsed (915ms)
✓ 30 tests/e2e/a11y.spec.ts:134:11 › responsive and accessibility matrix › axe dark: image disclosure expanded (943ms)
✓ 31 tests/e2e/a11y.spec.ts:145:9 › responsive and accessibility matrix › axe dark: command palette open (1.1s)
✓ 32 tests/e2e/a11y.spec.ts:154:9 › responsive and accessibility matrix › axe dark: command palette empty state (816ms)
✓ 33 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: home (1.0s)
✓ 34 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: map (1.0s)
✓ 35 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: runtime (1.1s)
✓ 36 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: changes (750ms)
✓ 37 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: copilot (804ms)
✓ 38 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: networking (1.0s)
✓ 39 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: network-detail (912ms)
✓ 40 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: storage (842ms)
✓ 41 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: volume-detail (846ms)
✓ 42 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: images (903ms)
✓ 43 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: image-detail (858ms)
✓ 44 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: logs (957ms)
✓ 45 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: compose (797ms)
✓ 46 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: diagnostics (850ms)
✓ 47 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: settings (928ms)
✓ 48 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: service-detail (1.1s)
✓ 49 tests/e2e/a11y.spec.ts:79:11 › responsive and accessibility matrix › axe core light: not-found (763ms)
✓ 50 tests/e2e/a11y.spec.ts:87:9 › responsive and accessibility matrix › axe light: token screen (627ms)
✓ 51 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe light: service tab overview (1.0s)
✓ 52 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe light: service tab dependencies (965ms)
✓ 53 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe light: service tab resources (973ms)
✓ 54 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe light: service tab logs (959ms)
✓ 55 tests/e2e/a11y.spec.ts:101:11 › responsive and accessibility matrix › axe light: service tab configuration (984ms)
✓ 56 tests/e2e/a11y.spec.ts:112:9 › responsive and accessibility matrix › axe light: service configuration internals expanded (1.1s)
✓ 57 tests/e2e/a11y.spec.ts:125:11 › responsive and accessibility matrix › axe light: network disclosure collapsed (881ms)
✓ 58 tests/e2e/a11y.spec.ts:134:11 › responsive and accessibility matrix › axe light: network disclosure expanded (964ms)
✓ 59 tests/e2e/a11y.spec.ts:125:11 › responsive and accessibility matrix › axe light: volume disclosure collapsed (856ms)
✓ 60 tests/e2e/a11y.spec.ts:134:11 › responsive and accessibility matrix › axe light: volume disclosure expanded (953ms)
✓ 61 tests/e2e/a11y.spec.ts:125:11 › responsive and accessibility matrix › axe light: image disclosure collapsed (882ms)
✓ 62 tests/e2e/a11y.spec.ts:134:11 › responsive and accessibility matrix › axe light: image disclosure expanded (955ms)
✓ 63 tests/e2e/a11y.spec.ts:145:9 › responsive and accessibility matrix › axe light: command palette open (960ms)
✓ 64 tests/e2e/a11y.spec.ts:154:9 › responsive and accessibility matrix › axe light: command palette empty state (849ms)
✓ 65 tests/e2e/a11y.spec.ts:169:7 › responsive and accessibility matrix › keyboard focus, selections, and aria controls (1.6s)
✓ 66 tests/e2e/a11y.spec.ts:346:9 › responsive and accessibility matrix › responsive 800px has no page overflow, clipped text, or clipped controls (8.0s)
✓ 67 tests/e2e/a11y.spec.ts:346:9 › responsive and accessibility matrix › responsive 640px has no page overflow, clipped text, or clipped controls (7.6s)
✓ 68 tests/e2e/a11y.spec.ts:469:7 › responsive and accessibility matrix › long, empty, and duplicate identities reflow instead of clipping at 640px (407ms)
✓ 69 tests/e2e/a11y.spec.ts:534:7 › responsive and accessibility matrix › service detail and change center surfaces report updates as not collected (483ms)
✓ 70 tests/e2e/a11y.spec.ts:555:7 › responsive and accessibility matrix › change history reports not collected under live authority (510ms)
✓ 71 tests/e2e/a11y.spec.ts:582:7 › responsive and accessibility matrix › change history renders tagged samples in demo mode (284ms)
✓ 72 tests/e2e/a11y.spec.ts:602:7 › responsive and accessibility matrix › resources report non-collection under intercepted live authority (976ms)
✓ 73 tests/e2e/a11y.spec.ts:618:7 › responsive and accessibility matrix › resources remain unavailable in the default mock stack (345ms)
✓ 74 tests/e2e/a11y.spec.ts:629:7 › responsive and accessibility matrix › resources render tagged samples only in explicit demo mode (348ms)
✓ 75 tests/e2e/a11y.spec.ts:645:7 › responsive and accessibility matrix › async route heading is promoted without a late focus steal (8.2s)
✓ 76 tests/e2e/a11y.spec.ts:717:7 › responsive and accessibility matrix › non-text contrast keeps state dots and focus rings at 3:1 without a network overlay (661ms)
✓ 77 tests/e2e/a11y.spec.ts:755:7 › responsive and accessibility matrix › reduced motion disables every visible infinite animation (328ms)

77 passed (1.6m) (77 tests)\n- \n\nNo private dependency, runtime egress, API contract, or screen behavior change.

@Joncallim
Joncallim changed the base branch from main to codex/npm-audit-express5 September 2, 2026 16:32

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5edcc0187f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/web/src/styles.css Outdated
Comment on lines +597 to +600
gap: var(--hearth-space-1);
padding: 2px var(--hearth-space-2);
border-radius: var(--hearth-radius-sm);
font-size: var(--hearth-type-xs);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Define the Hearth tokens before consuming them

None of --hearth-space-1, --hearth-space-2, --hearth-radius-sm, or --hearth-type-xs is declared in hearth-tokens.css or elsewhere in the reviewed tree. Consequently, browsers discard these declarations at computed-value time whenever .tag, .tag-wrap, or .ref-chip renders, removing their intended gaps, padding, corner radius, and font sizing. Add the tokens to the public export or provide valid fallbacks; the new source-level test currently verifies only that the undefined references exist.

Useful? React with 👍 / 👎.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T16:32:39.824503Z 5edcc01 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@Joncallim
Joncallim force-pushed the codex/67-hearth-metadata-capsules branch from da51f64 to 5c90c87 Compare September 2, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant