Skip to content

Commit c3a131c

Browse files
committed
Add registry-driven previous next links to tool display mode - PR_26155_100-102-tool-display-mode-nav
1 parent 232dd35 commit c3a131c

42 files changed

Lines changed: 571 additions & 212 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

assets/theme-v2/js/tool-display-mode.js

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,21 @@
4444
const body = document.createElement("div");
4545
body.className = "tool-display-mode__body";
4646

47+
const identityRow = document.createElement("div");
48+
identityRow.className = "tool-display-mode__identity-row content-cluster";
49+
identityRow.dataset.toolDisplayModeRow = "identity";
50+
4751
const character = document.createElement("img");
4852
character.className = "tool-display-mode__character";
4953
character.src = publicImageSource(slot.dataset.toolCharacterSrc, "characters");
5054
character.alt = toolName + " character";
51-
body.appendChild(character);
55+
identityRow.appendChild(character);
5256

5357
const description = document.createElement("span");
5458
description.className = "tool-display-mode__description";
5559
description.textContent = toolName;
56-
body.appendChild(description);
60+
identityRow.appendChild(description);
61+
body.appendChild(identityRow);
5762
displayMode.appendChild(body);
5863
slot.replaceWith(displayMode);
5964

@@ -69,21 +74,19 @@
6974
}
7075

7176
function createNavigationControl(direction, target) {
72-
const controlLabel = direction === "previous" ? "Previous Tool" : "Next Tool";
77+
const controlLabel = direction === "previous" ? "Previous" : "Next";
7378
const dataAttribute = direction === "previous" ? "toolNavPrevious" : "toolNavNext";
7479

7580
if (!target || target.disabled) {
76-
const button = document.createElement("button");
77-
button.type = "button";
78-
button.className = "btn";
79-
button.disabled = true;
80-
button.dataset[dataAttribute] = "disabled";
81-
button.textContent = controlLabel + ": " + (target?.label || "Unavailable");
82-
return button;
81+
const disabledText = document.createElement("span");
82+
disabledText.className = "pill";
83+
disabledText.dataset[dataAttribute] = "disabled";
84+
disabledText.textContent = controlLabel + ": " + (target?.label || "Unavailable");
85+
return disabledText;
8386
}
8487

8588
const link = document.createElement("a");
86-
link.className = "btn";
89+
link.className = "btn btn-secondary";
8790
link.href = roleAwareHref(target.href);
8891
link.dataset[dataAttribute] = target.kind;
8992
if (target.group) {
@@ -98,7 +101,8 @@
98101
const registry = await import("/toolbox/toolRegistry.js");
99102
const navigation = registry.getToolNavigationTargets(toolSlug);
100103
const navigationRow = document.createElement("nav");
101-
navigationRow.className = "content-cluster";
104+
navigationRow.className = "tool-display-mode__navigation-row content-cluster";
105+
navigationRow.dataset.toolDisplayModeRow = "navigation";
102106
navigationRow.setAttribute("aria-label", "Tool build-order navigation");
103107
navigationRow.append(
104108
createNavigationControl("previous", navigation.previous),

docs_build/dev/reports/coverage_changed_js_guardrail.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ Missing changed runtime JS files are WARN, not FAIL.
66
Source: Playwright/Chromium built-in V8 coverage from the active Playwright run.
77

88
Changed runtime JS files considered:
9-
(70%) toolbox/tools-page-accordions.js - executed lines 1858/1858; executed functions 39/56
10-
(91%) toolbox/toolRegistry.js - executed lines 1311/1311; executed functions 21/23
9+
(100%) none changed - no changed runtime JS files
1110

1211
Guardrail warnings:
13-
(100%) none - no changed runtime JS coverage warnings
12+
(100%) none changed - no changed runtime JS files

docs_build/dev/reports/dependency_gating_report.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Dependency Gating Report
22

3-
Generated: 2026-06-05T01:16:23.999Z
3+
Generated: 2026-06-05T01:49:31.798Z
44
Status: PASS
55

66
## Gate Order
@@ -14,13 +14,14 @@ Status: PASS
1414

1515
| Lane | Selected | Status | Dependencies | Affected Surface | Reason |
1616
| --- | --- | --- | --- | --- | --- |
17-
| workspace-contract | No | SKIP | none | Root tools future-state navigation and Tool Template V2 contract | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
17+
| workspace-contract | Yes | PASS | none | Root tools future-state navigation and Tool Template V2 contract | Lane has no lane dependencies and is eligible after preflight and compilation pass. |
1818
| project-workspace | No | SKIP | none | Project Workspace mock repository, Project Workspace UI, and Toolbox Progress/Build Path project-state bridge | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
1919
| game-design | No | SKIP | none | Game Design mock repository, project purpose flow, validation overlay, capability demo authoring, and Toolbox progress handoff | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
2020
| game-configuration | No | SKIP | none | Game Configuration mock repository, Game Design handoff, configuration validation, user-facing output, and Toolbox progress handoff | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
2121
| build-path | No | SKIP | none | Toolbox Build Path simplification, workflow status table, and Admin Tools Progress navigation | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
2222
| tools-progress | No | SKIP | none | Admin Tools Progress hydration, Toolbox Group view color model, and Project Build Path separation | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
23-
| tool-navigation | Yes | PASS | none | Admin Tools Progress tool route links, Tool Display Mode build-order previous/next controls, and Toolbox group fallback routing | Lane has no lane dependencies and is eligible after preflight and compilation pass. |
23+
| tool-navigation | No | SKIP | none | Admin Tools Progress tool route links, Tool Display Mode build-order previous/next controls, and Toolbox group fallback routing | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
24+
| tool-display-mode | No | SKIP | none | Tool Display Mode identity row, registry-owned previous/next links, disabled text fallback, and multi-path group routing | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
2425
| tool-runtime | No | SKIP | none | Active public toolbox and Tool Template V2 contract | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
2526
| game-runtime | No | SKIP | none | Deprecated archive/v1-v2/games reference coverage | Lane was not selected, so dependency-gated runtime scheduling skipped it. |
2627
| integration | No | SKIP | none | Integration handoff behavior | Lane was not selected, so dependency-gated runtime scheduling skipped it. |

docs_build/dev/reports/dependency_hydration_reuse_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Dependency Hydration Reuse Report
22

3-
Generated: 2026-06-05T01:16:23.999Z
3+
Generated: 2026-06-05T01:49:31.798Z
44
Status: PASS
55

66
## Summary
@@ -16,7 +16,7 @@ Prevented fixture ownership traversal: 0
1616

1717
| Lane | Status | Helpers | Fixtures | Imports | Dependency Hydration Hash | Reason |
1818
| --- | --- | --- | --- | --- | --- | --- |
19-
| tool-navigation | INVALIDATED | tests/helpers/playwrightRepoServer.mjs; tests/helpers/playwrightStorageIsolation.mjs; tests/helpers/playwrightV8CoverageReporter.mjs; tests/helpers/workspaceV2CoverageReporter.mjs | none | tests/helpers/playwrightRepoServer.mjs; tests/helpers/playwrightStorageIsolation.mjs; tests/helpers/playwrightV8CoverageReporter.mjs; tests/helpers/workspaceV2CoverageReporter.mjs; toolbox/toolRegistry.js | ac2d176afce66b9b | Dependency hydration was refreshed after warm-start invalidation. |
19+
| workspace-contract | INVALIDATED | tests/helpers/playwrightRepoServer.mjs; tests/helpers/playwrightStorageIsolation.mjs; tests/helpers/playwrightV8CoverageReporter.mjs; tests/helpers/workspaceV2CoverageReporter.mjs | none | tests/helpers/playwrightRepoServer.mjs; tests/helpers/playwrightStorageIsolation.mjs; tests/helpers/playwrightV8CoverageReporter.mjs; tests/helpers/workspaceV2CoverageReporter.mjs | 0ff8fc92c789456d | Dependency hydration was refreshed after warm-start invalidation. |
2020

2121
## Safeguards
2222

docs_build/dev/reports/execution_graph_reuse_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Execution Graph Reuse Report
22

3-
Generated: 2026-06-05T01:16:23.999Z
3+
Generated: 2026-06-05T01:49:31.799Z
44
Status: PASS
55

66
## Summary
@@ -16,7 +16,7 @@ Prevented targeted scheduling work: 0
1616

1717
| Lane | Status | Snapshot Status | Execution Graph Hash | Reason |
1818
| --- | --- | --- | --- | --- |
19-
| tool-navigation | INVALIDATED | INVALIDATED | bfb37d857f4805dd | Lane snapshot is part of the selected targeted execution graph. |
19+
| workspace-contract | INVALIDATED | INVALIDATED | 1f2c2cad37cea71d | Lane snapshot is part of the selected targeted execution graph. |
2020

2121
## Safeguards
2222

docs_build/dev/reports/failure_fingerprint_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Failure Fingerprint Report
22

3-
Generated: 2026-06-05T01:16:40.602Z
3+
Generated: 2026-06-05T01:50:07.322Z
44
Status: PASS
55

66
## Summary

docs_build/dev/reports/filesystem_scan_reduction_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Filesystem Scan Reduction Report
22

3-
Generated: 2026-06-05T01:16:23.974Z
3+
Generated: 2026-06-05T01:49:31.791Z
44
Status: PASS
55

66
## Scan Enforcement
@@ -13,7 +13,7 @@ Status: PASS
1313
| tests/playwright/engine | SKIP | Unselected lane directory discovery was skipped. |
1414
| tests/playwright/games | SKIP | Unselected lane directory discovery was skipped. |
1515
| tests/playwright/integration | SKIP | Unselected lane directory discovery was skipped. |
16-
| tests/playwright/tools | SKIP | Unselected lane directory discovery was skipped. |
16+
| tests/playwright/tools | SCOPED | Selected lane discovery was restricted to explicit target specs. |
1717

1818
## Runtime Savings Observations
1919

docs_build/dev/reports/incremental_validation_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Incremental Validation Report
22

3-
Generated: 2026-06-05T01:16:24.000Z
3+
Generated: 2026-06-05T01:49:31.800Z
44
Status: PASS
55

66
## Reuse Summary
@@ -18,7 +18,7 @@ Prevented fixture resolution passes: 0
1818

1919
| Lane | Decision | Invalidated By | Runtime Savings Observation |
2020
| --- | --- | --- | --- |
21-
| tool-navigation | INVALIDATED | Persistent manifest input hash changed for tool-navigation.; Persistent manifest hash changed for tool-navigation. | Manifest was regenerated or skipped; no reuse savings for this lane. |
21+
| workspace-contract | INVALIDATED | Persistent manifest lane definition hash changed for workspace-contract. | Manifest was regenerated or skipped; no reuse savings for this lane. |
2222

2323
## Invalidation Rules
2424

docs_build/dev/reports/lane_compilation_report.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
# Lane Compilation Report
22

3-
Generated: 2026-06-05T01:16:23.998Z
3+
Generated: 2026-06-05T01:49:31.798Z
44
Status: PASS
55

66
## Lane Graph
77

88
| Lane | Status | Affected Surface | Targets | Commands | Reason |
99
| --- | --- | --- | --- | --- | --- |
10-
| workspace-contract | SKIP | Root tools future-state navigation and Tool Template V2 contract | tests/playwright/tools/RootToolsFutureState.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/RootToolsFutureState.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
10+
| workspace-contract | PASS | Root tools future-state navigation and Tool Template V2 contract | tests/playwright/tools/RootToolsFutureState.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/RootToolsFutureState.spec.mjs --project=playwright --workers=1 --reporter=list | Lane graph, command shape, targets, fixtures, and ownership compile before runtime. |
1111
| project-workspace | SKIP | Project Workspace mock repository, Project Workspace UI, and Toolbox Progress/Build Path project-state bridge | tests/playwright/tools/ProjectWorkspaceMockRepository.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/ProjectWorkspaceMockRepository.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
1212
| game-design | SKIP | Game Design mock repository, project purpose flow, validation overlay, capability demo authoring, and Toolbox progress handoff | tests/playwright/tools/GameDesignMockRepository.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/GameDesignMockRepository.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
1313
| game-configuration | SKIP | Game Configuration mock repository, Game Design handoff, configuration validation, user-facing output, and Toolbox progress handoff | tests/playwright/tools/GameConfigurationMockRepository.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/GameConfigurationMockRepository.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
1414
| build-path | SKIP | Toolbox Build Path simplification, workflow status table, and Admin Tools Progress navigation | tests/playwright/tools/BuildPathProgressSimplification.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/BuildPathProgressSimplification.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
1515
| tools-progress | SKIP | Admin Tools Progress hydration, Toolbox Group view color model, and Project Build Path separation | tests/playwright/tools/ToolsProgressHydration.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/ToolsProgressHydration.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
16-
| tool-navigation | PASS | Admin Tools Progress tool route links, Tool Display Mode build-order previous/next controls, and Toolbox group fallback routing | tests/playwright/tools/ToolNavigationPrevNext.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/ToolNavigationPrevNext.spec.mjs --project=playwright --workers=1 --reporter=list | Lane graph, command shape, targets, fixtures, and ownership compile before runtime. |
16+
| tool-navigation | SKIP | Admin Tools Progress tool route links, Tool Display Mode build-order previous/next controls, and Toolbox group fallback routing | tests/playwright/tools/ToolNavigationPrevNext.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/ToolNavigationPrevNext.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
17+
| tool-display-mode | SKIP | Tool Display Mode identity row, registry-owned previous/next links, disabled text fallback, and multi-path group routing | tests/playwright/tools/ToolDisplayModeNavigation.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/ToolDisplayModeNavigation.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
1718
| tool-runtime | SKIP | Active public toolbox and Tool Template V2 contract | tests/playwright/tools/RootToolsFutureState.spec.mjs | C:\nvm4w\nodejs\node.exe C:\Users\davidq\Documents\GitHub\HTML-JavaScript-Gaming\node_modules\@playwright\test\cli.js test tests/playwright/tools/RootToolsFutureState.spec.mjs --project=playwright --workers=1 --reporter=list | Lane was not selected. |
1819
| game-runtime | SKIP | Deprecated archive/v1-v2/games reference coverage | none | none | Lane was not selected. |
1920
| integration | SKIP | Integration handoff behavior | none | none | Lane was not selected. |

docs_build/dev/reports/lane_deduplication_report.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Lane Deduplication Report
22

3-
Generated: 2026-06-05T01:16:23.999Z
3+
Generated: 2026-06-05T01:49:31.798Z
44
Status: PASS
55

66
## Summary
77

8-
Raw lane requests: tool-navigation
9-
Unique scheduled lanes: tool-navigation
8+
Raw lane requests: workspace-contract
9+
Unique scheduled lanes: workspace-contract
1010
Prevented duplicate lane executions: 0
1111
Prevented browser launches: 0
1212
Prevented Workspace lane reruns: 0

0 commit comments

Comments
 (0)