You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0322e65
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
7
7
## [Unreleased]
8
8
9
+
### Fixed
10
+
11
+
- E2E narration expectations include the nested-list fixture content, and the keyboard focus-ring test accounts for the explanations toggle revealed when the splitter receives focus.
Copy file name to clipboardExpand all lines: docs/dev/PROJECT.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -355,6 +355,8 @@ The page structure is our own CSS grid (`div.layout` > `div.docs-column` (`main.
355
355
356
356
| Feature | Context A | Context B | Notes |
357
357
|---|---|---|---|
358
+
| Keyboard focus reveals new Tab stops | Shift+Tab from a file tab reaches the explanations splitter while its toggle is hidden | The splitter's `:focus-within` reveals Hide explanations, so the next Tab reaches that button before returning to the file tab | Forward and backward Tab navigation are not symmetric when focus changes visibility. `e2e/tutorial-page.spec.ts` checks splitter → toggle → selected file tab before checking the keyboard focus ring. |
359
+
| Shared fixture prose and narration assertions | Adding list examples to a closed disclosure preserves its initial layout | Narration with collapsed sections enabled reads that new content, including when explanations are hidden | Search `e2e/speech.spec.ts` for exact spoken-text expectations whenever editing `fixtures/framework-fixture/tutorial/tutorial.mdx`; list layout and narration tests share this fixture. |
358
360
| Hidden explanations and scroll events | A pointer selection marks the docs scroller as user-controlled | Hiding its ancestor reports `scrollTop = 0` and can deliver scroll callbacks, which previously activated the intro or first step | Both scroll-driven step activation paths ignore a docs panel with zero `clientHeight`; keyboard navigation still works while it is hidden. Regression: `e2e/presentation.spec.ts` (select, hide, navigate, show). |
359
361
| Starlight locals in website overrides | Starlight sets `Astro.locals.starlightRoute` at runtime |`astro check` in `site/` does not load Starlight's global types merely because the integration is configured in `.mjs`|`site/src/env.d.ts` references `@astrojs/starlight`, whose entry point imports the global declarations. Keep it when adding overrides that read route data (the Markdown source link, 2026-10-17). |
360
362
| Astro glob loader metadata | Unchanged Markdown keeps its content digest and cached parsed data | Changing only `parseData` helpers does not invalidate that digest, so newly added metadata may be absent in an existing dev server or cached build | The website source link derives its URL from the stable content ID through `docsSourceUrl()` instead of relying on new cached metadata fields. Check both dev and preview after changing content metadata. |
@@ -398,6 +400,7 @@ The page structure is our own CSS grid (`div.layout` > `div.docs-column` (`main.
398
400
|`JSON.parse` error position (Node/V8) | "Expected …" / "Unterminated string" messages include `position N (line L column C)`| "Unexpected token …" messages have no position |`readErrorRule()` reports those at line 1; do not rely on the message for exact positions |
399
401
| Response headers in the runner | Same-origin or CORS-safelisted headers (`Content-Type`, `Content-Length`…): readable | Other headers of a cross-origin response: hidden unless listed in `Access-Control-Expose-Headers`| The Headers tab lists `response.headers` as the browser exposes them (lowercase names) and says so |
400
402
| npm trusted publishing provenance | Missing or mismatched package `repository.url`| URL matching the GitHub provenance repository | Publish can fail with E422; npm may normalize the URL to `git+https://github.com/<owner>/<repo>.git`|
403
+
| npm publish acceptance vs install availability |`npm publish` and GitHub Actions succeed, with a notice that the package is being processed | The registry can still return 404 for the version and retain the previous `latest`; pnpm reports `ERR_PNPM_NO_MATCHING_VERSION`| npm scans new versions before making them installable, typically around five minutes, sometimes 15 minutes or more (not guaranteed). Seen for core beta.11 while the scaffolder was already available. Check `npm view interactive-code-scroll@0.2.0-beta.11 version --prefer-online` before retrying the install; do not assume a pnpm cache problem or republish just because the workflow succeeded. [Official explanation](https://github.blog/changelog/2026-07-28-npm-publish-time-malware-scanning-and-dual-use-metadata/). |
401
404
| npm publish `E404 Not Found` on `PUT`| Trusted publishing configured and valid: publishes | Expired trusted publishing setup on npmjs.com (seen for `create-interactive-code-scroll`, 0.2.0-beta.1) | The 404 hides an auth failure. Renew it in the package's Settings → Trusted publishing (GitHub Actions, `hhkaos/interactive-code-scroll`, `publish-npm.yml`, environment `npm-publish`, "Allow npm publish"), then re-run the workflow: versions already on npm are skipped. Older `gh` has no `rerun --failed`; `gh run rerun <id>` is safe |
402
405
| Shiki line layout |`.line` as `inline-block` inside `<pre>`|`.line` as `block` inside `<pre>`| Block line spans can make Shiki's inter-line text nodes render as extra vertical spacing; keep lines inline-level and assert adjacent line spacing in E2E |
403
406
| MDX frontmatter in Sätteri plugins |`ctx.source` has the frontmatter blanked out (lines kept) | Astro parses it first and seeds `ctx.data.astro.frontmatter`| Read the parsed object from `ctx.data`; get key line numbers from the file on disk (`frontmatterKeyLines`) |
Copy file name to clipboardExpand all lines: docs/dev/documentation-review.json
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,9 @@
1
1
{
2
2
"changes": [
3
+
{
4
+
"change": "E2E narration expectations include the nested-list fixture content, and the keyboard focus-ring test accounts for the explanations toggle revealed when the splitter receives focus.",
5
+
"reason": "Test-only corrections for existing fixture content and focus-dependent toggle visibility; no runtime behavior, public API or authoring instructions changed."
6
+
},
3
7
{
4
8
"change": "Tutorial lists use consistent item spacing, preserve paragraph separation within items and remove the extra bottom gap after nested lists.",
0 commit comments