Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
eefbd8d
WIP.ShotReview.md: the plan for the screenshot review tool (pages, qu…
KubaO Oct 31, 2026
95378e8
withinNoise takes its limits and rectangles as options (levels, share…
KubaO Oct 31, 2026
227e77f
tb-install: listIdes lists every install at or above MIN_BUILD, newes…
KubaO Oct 31, 2026
b74bae5
The git change listing (changedPictures, parseNameStatus, parseUntrac…
KubaO Oct 31, 2026
4e94dd7
lib/record-lines.mjs: the @@<kind> <json> record lines a child writes…
KubaO Oct 31, 2026
97c2337
lib/sse.mjs: a channel of server-sent events (createSseChannel), lift…
KubaO Oct 31, 2026
291e628
lib/shot-policy.mjs (decidePicture, decideSvg, SIZE_SLACK, SVG_FAITHF…
KubaO Oct 31, 2026
e814d69
shoot_docs: closeTabs waits, with a MutationObserver, for a tab's clo…
KubaO Oct 31, 2026
ae3d604
WIP.ShotReview.md: step 1's moves done and left
KubaO Oct 31, 2026
089e254
lib/shot-views.mjs (pageHtml, cardHtml, figuresIn, meterHtml, tocItem…
KubaO Oct 31, 2026
51e1164
The screenshot manifest, test/shots/manifest.json (lib/shot-manifest.…
KubaO Oct 31, 2026
f26ba0e
Step 3 of the screenshot review: diffSvg's strength map (pct8/32/96 f…
KubaO Oct 31, 2026
4f05d02
WIP.ShotReview.md: a capture kept as within noise with a surviving bl…
KubaO Oct 31, 2026
52ca8d7
shot-queue.mjs: pngLook's faint, a capture kept as within noise (nois…
KubaO Oct 31, 2026
1c05bb9
outputRefusal moved from svgshot/sheets.mjs to lib/shot-revision.mjs,…
KubaO Oct 31, 2026
4108296
pictureFate and decidePicture name the picture a capture was judged a…
KubaO Oct 31, 2026
e0fe1ff
lib/shot-stage.mjs, a run's stage (folders, verdicts, strength maps, …
KubaO Oct 31, 2026
8728cd6
Step 4 of the screenshot review: --stage and --events in shoot_docs.m…
KubaO Oct 31, 2026
8194912
shot-queue.mjs: faint counts the pixels FAINT_LEVEL (2) levels off or…
KubaO Oct 31, 2026
5fc04cb
WIP.ShotReview.md: step 4 done, FAINT_LEVEL (owner), step 5 next; --s…
KubaO Oct 31, 2026
fd13f85
Step 5 of the screenshot review: scripts/shot_review.mjs, its session…
KubaO Oct 31, 2026
b7acad4
WIP.ShotReview.md: the owner's answers to step 5's open questions (po…
KubaO Oct 31, 2026
f1747b0
Step 6 of the screenshot review: verdicts applied under docs as they …
KubaO Oct 31, 2026
19ee09d
Step 7 of the screenshot review: the runs page (retake, replay, clean…
KubaO Oct 31, 2026
8fd0a87
Step 8 of the screenshot review: the commit page (the session's own f…
KubaO Oct 31, 2026
f178eaa
WIP.ShotReview.md: the commit's status says committing... (owner), wi…
KubaO Oct 31, 2026
c63c235
Step 9 of the screenshot review: sheet.mjs judges and shows each pict…
KubaO Oct 31, 2026
b1e0f60
The screenshot manifest keeps its line endings when saved; one PNG si…
KubaO Oct 31, 2026
f6b4a5b
The screenshot review commits without blocking: commitPaths runs git …
KubaO Oct 31, 2026
3c9853f
Screenshot review's commit plan counts a PNG kept at HEAD only for a …
KubaO Oct 31, 2026
29b13c8
WIP.ShotReview.md: the commit runs without blocking, how it was check…
KubaO Nov 1, 2026
fda4d96
Screenshot review: one event stream for all its pages in the browser …
KubaO Nov 1, 2026
1761b1e
Screenshot review: a picture's page caps a row of pictures' height by…
KubaO Nov 1, 2026
76a91ba
Screenshot review: a picture whose capture failed has a page (its ver…
KubaO Nov 1, 2026
59b14ac
svgshot: a styled scrollbar in a cut-out is drawn (scrollbarParts' pr…
KubaO Nov 1, 2026
c8d1d9b
Screenshot review: a staged file is written whole and renamed into pl…
KubaO Nov 1, 2026
499be73
Screenshot review: a run that has ended can be removed, as if it had …
KubaO Nov 1, 2026
e89afb9
The defaults hook's check waits for the hook to be installed before i…
KubaO Nov 1, 2026
03cd079
Screenshot review: a retake that has ended with failed pictures offer…
KubaO Nov 1, 2026
37e7c9b
Screenshot review: a run's jobs and its row on the overview say how m…
KubaO Nov 1, 2026
1997433
Screenshot review: a move of the baseline sends a verdict to Needs a …
KubaO Nov 1, 2026
c5de422
Screenshot review: → and ← go to the next and previous picture beside…
KubaO Nov 1, 2026
b86a763
Screenshot review: blink and swipe draw an opaque checkerboard under …
KubaO Nov 1, 2026
8febda8
diffSvg compares each pixel's luminance as seen over black and over w…
KubaO Nov 1, 2026
e145407
A font cut kept by two drawing jobs at once no longer fails the secon…
KubaO Nov 1, 2026
7e3476d
WIP.Screenshots: Properties_ColourPicker.light's rectangle was step 3…
KubaO Nov 1, 2026
aa8ba57
The PNG noise rule compares each channel as seen over black and over …
KubaO Nov 1, 2026
1889bb5
A review that accepts a run's SVG writes it though its PNG stays (sho…
KubaO Nov 1, 2026
9375578
Screenshot review: a picture's page fetches itself again when the run…
KubaO Nov 1, 2026
31e5fe6
Screenshot review: the reason for a greyed Replay names the ways a bu…
KubaO Nov 1, 2026
7e9be87
svgshot draws an <embed> of a data: image as an <img>, stretched to i…
KubaO Nov 1, 2026
2f362b8
Screenshot review: a running program's window is a group of its own, …
KubaO Nov 1, 2026
c741ccd
Screenshot review: an older run's "not a single capture" is not read …
KubaO Nov 1, 2026
da80ada
Screenshot review: each group of the overview has a checkbox that sel…
KubaO Nov 1, 2026
1b46a62
WIP.md: a command whose output is filtered is teed to a file first, s…
KubaO Nov 1, 2026
35bcfb1
Screenshot review: Retake what failed of a run that named no IDE runs…
KubaO Nov 1, 2026
18f55ab
svgshot draws a square box's background in its padding box where its …
KubaO Nov 1, 2026
50ab46c
svgshot draws a solid line-through over its text, sized as the underl…
KubaO Nov 1, 2026
852cde1
svgshot bench: Edge is started without __COMPAT_LAYER, under which Ed…
KubaO Nov 1, 2026
bb66de7
Screenshot review: a click on the PNG, the SVG or the map of a pictur…
KubaO Nov 1, 2026
99ba196
svgshot draws text-overflow: ellipsis as Chromium cuts a line: what f…
KubaO Nov 1, 2026
a731b1e
Screenshot review: a run's verdicts are applied from a queue, one per…
KubaO Nov 1, 2026
a74d412
Screenshot review: All pictures (/all), every picture of shoot_docs.m…
KubaO Nov 1, 2026
899324e
svgshot draws an outline as Chromium does, as a border of its style r…
KubaO Nov 1, 2026
65292c6
svgshot draws a focused text field's selection, which Chromium paints…
KubaO Nov 1, 2026
1920a91
svgshot reads an attribute DevTools gives with no value as the empty …
KubaO Nov 1, 2026
09641ee
svgshot draws a list marker of disc, circle, square or a disclosure t…
KubaO Nov 1, 2026
ba4242d
svgshot draws a search field's clear button, which is in the field's …
KubaO Nov 1, 2026
fc13c5b
svgshot rounds a focus ring round a box with square corners by Chromi…
KubaO Nov 1, 2026
84482e8
The defaults hook's ready waits for the pages being prepared: a page …
KubaO Nov 1, 2026
525186e
svgshot clips an input's text down to its line where the line is tall…
KubaO Nov 1, 2026
8635a84
shot_review shows the pictures a replay passes on for a retake: they …
KubaO Nov 1, 2026
d7054da
checkDefaults adds the hook's script on its own connection before the…
KubaO Nov 1, 2026
4e05975
svgshot gives a web-font character every rule whose range holds it, t…
KubaO Nov 1, 2026
26175d1
svgshot counts a field that shows text in a bundle taken before selec…
KubaO Nov 1, 2026
c2787bd
A retake whose PNG stays puts its bundle into the cache when the SVG …
KubaO Nov 1, 2026
33316ff
checkDefaults waits for the page to commit main.htm before it judges …
KubaO Nov 1, 2026
2313584
A retake whose PNG stays writes its SVG and caches its bundle when th…
KubaO Nov 1, 2026
145018d
shoot_docs gives every project it opens one project.id, DOCS_PROJECT_…
KubaO Nov 2, 2026
bf3e6b6
shoot_docs takes the release shot from the run's own build's release …
KubaO Nov 2, 2026
8b0fe6c
svgshot clips a background picture that reaches into a rounded corner…
KubaO Nov 2, 2026
534320e
svgshot draws a checked checkbox or radio button in its accent-color …
KubaO Nov 2, 2026
f5a49e2
svgshot draws Chromium's own check mark (M2.6 6.5L5.2 9.1L10.4 2.6, 2…
KubaO Nov 2, 2026
34e9ab5
svgshot draws a rounded border whose solid sides differ in colour as …
KubaO Nov 2, 2026
5e30ffd
shoot_docs shows the Webpage pane's page and Help_Window's docs frame…
KubaO Nov 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/actions/run-gates/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,13 @@ runs:
- name: Unit-test that SVG screenshots are one line (test/svgshot.test.mjs)
shell: bash
run: node --test test/svgshot.test.mjs
# The screenshot review tool (scripts/shot_review.mjs): its session, what
# its pages show, its writes under a scratch docs folder, and its server,
# followed through a stand-in run, with its commit in a scratch repository.
# No IDE, no browser, no built tree; git. About 3 s.
- name: Unit-test the screenshot review tool (test/shot-review.test.mjs)
shell: bash
run: node --test test/shot-review.test.mjs
# check_examples.mjs's probes: batching, crash isolation through a fake
# lane, the canaries and the fence classifier. check_examples.mjs needs a
# twinBASIC install, which CI has not; its probes need none.
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,7 @@ indexer/.packages/
# shoot_docs.mjs --svg: each picture's bundle (scripts/svgshot/bundle.mjs), what its SVG
# is drawn from, for scripts/svgshot/replay.mjs. Bundles hold the Windows user name.
/.svgshot-bundles/

# scripts/shot_review.mjs: the screenshot review's session and its runs' stages
# (scripts/lib/shot-session.mjs), which hold the Windows user name.
/.shot-review/
21 changes: 20 additions & 1 deletion WIP.Harness.md
Original file line number Diff line number Diff line change
Expand Up @@ -1206,7 +1206,26 @@ The recent lists are left alone: `test/ide/recent-projects-copies.test.mjs` need
A probe of 50 launches hooked 49. The one miss was a page whose document began before the script was
added. `attachIde` therefore checks `window.__tbDefaults`, the marker the script sets (it lists the keys
answered, never their values), and reloads the page once when it is missing: the hook's session still holds
the script, the reload takes about 40 ms, and the UI and the command-line project come back. A marker still
the script, the reload takes about 40 ms, and the UI and the command-line project come back. The reload
waits for the hook to be installed (`hook.ready`): the hook connects on its own, and in a `shoot_docs
--jobs 10` run on BETA 1033 the help setup's page was reloaded before it had attached, loaded unhooked
again, and failed the setup. `ready` also waits for the pages being prepared: a page that existed
before the auto-attach is attached by `setAutoAttach` itself and prepared from its event, which `ready`
did not wait for, so in another `--jobs 10` run on BETA 1033 (2026-11-01) a debugging setup's page was
reloaded before its script was added, and failed the setup the same way. A page that could not be
prepared is named in the error. That was not the whole cause: the next `--jobs 10` run failed a
sample setup the same way with every page prepared, for a reason still unknown. So `checkDefaults`
also adds the script on its own connection to the page before the reload, which is open while the
page reloads whatever became of the hook's session, and a marker still missing after that reports
the page's address and state, the last check's error, the check's steps and the hook's (`trace`:
connected, each page attached and prepared, ready, a closed connection), each with its time. Those
named the cause in a `--jobs 16` retake on BETA 1033 (2026-11-02, settings-webview2), and likely the
sample setup's too: `attach` takes the target listed as `main.htm`, which it is while its navigation
there is still pending, so the check found `about:blank` with no marker, and its reload loaded
`about:blank` again and cancelled the navigation (the page "about:blank, complete" after the reload,
every page prepared). So `checkDefaults` first waits, a minute at most, for the page to commit
`main.htm`, whose document may then have run the hook after all, and fails with "its page never loaded
main.htm" rather than reload a page that has not. A marker still
missing after that is a harness error, exit 2, since the run would have the user's settings. The hook's
connection lives as long as the process, so a `tbbuild --keep` IDE is hooked until `tbbuild` ends.

Expand Down
7 changes: 6 additions & 1 deletion WIP.HelpAddin.md
Original file line number Diff line number Diff line change
Expand Up @@ -1186,7 +1186,12 @@ not: a restart saves a harness about a second against opening a new IDE.
the add-in also removes `WEBVIEW2_USER_DATA_FOLDER` and
`WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS` from the compiler's environment (P19), and
starts the control with the DevTools port in `TB_DOCS_HELP_WINDOW_PORT`, through which
the lane operates the window's page. The `%LOCALAPPDATA%` path is not run by any lane.
the lane operates the window's page, and with the further arguments in
`TB_DOCS_HELP_WINDOW_ARGS` beside it: `shoot_docs`'s help setup passes
`--force-device-scale-factor=1`, without which, on a display scaled to 150%, the page's
DOM snapshot is in the display's pixels and Help_Window's SVG is drawn 1.5 times too large
(the help lane passes none, so that it tests the window at the display's scale). The
`%LOCALAPPDATA%` path is not run by any lane.
- **The lanes** read the add-in's test-switch lines: `window shown`, `window hidden`,
`window state max|normal|min`, `window drag` and `window chrome custom|native style
<hex of GWL_STYLE>`. They check the bar's one row and the four buttons, no `WS_CAPTION`
Expand Down
Loading
Loading