Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
344 commits
Select commit Hold shift + click to select a range
0d336e5
fix(test run): a sealed history is removed only when its seal records…
ryota-murakami Oct 23, 2026
1350981
test(test run): the F256 test's start key comes from randomUUID, not …
ryota-murakami Oct 23, 2026
763bf0e
fix(test run): every MCP answer sanitizes domain errors too (F261); l…
ryota-murakami Oct 23, 2026
0ddd458
docs(readme): test replays: which runs offer read-history, kept and r…
ryota-murakami Oct 23, 2026
d10f77d
test(extension): the Save Learning Replay notice test's workspace sta…
ryota-murakami Oct 23, 2026
94aba4c
chore: bump version and changelog (v0.2.36.0)
ryota-murakami Oct 23, 2026
b187f71
Merge branch 'codex/cycle-0050-pr1-run-contracts-and-tests' into code…
ryota-murakami Oct 23, 2026
6328000
Merge remote-tracking branch 'origin/main' into codex/cycle-0050-pr2-…
ryota-murakami Oct 23, 2026
d38eb50
test(test replay): a render that settles while another replay opens i…
ryota-murakami Oct 23, 2026
9a456e6
test(study workspace): the reopen through a new history store names t…
ryota-murakami Oct 23, 2026
1135bbd
test(reader dom): the three DS20 follow cases read the host's reading…
ryota-murakami Oct 23, 2026
648e034
test(test replay): overtaken moves and an overtaken browser study are…
ryota-murakami Oct 23, 2026
72c5688
fix(test replay): a test history another live window records lists as…
ryota-murakami Oct 23, 2026
c41bc98
fix(test replay): the writer of a history another window records is j…
ryota-murakami Oct 23, 2026
74e7fca
Merge branch 'codex/c50-pr2-c' into codex/cycle-0050-pr2-application-…
ryota-murakami Oct 23, 2026
97e1a6f
test(test replay): an overtaken move is waited on through its own sel…
ryota-murakami Oct 23, 2026
8926e2d
test(test replay): waits for the reader's results use READER_RESULT_B…
ryota-murakami Oct 23, 2026
30c5f69
Merge branch 'codex/c50-pr2-d' into codex/cycle-0050-pr2-application-…
ryota-murakami Oct 23, 2026
0920870
fix(node test): a declared stop in the test file itself is captured f…
ryota-murakami Oct 23, 2026
f50a48f
refactor(owned breakpoint): remove the unused 'declared-column' mode …
ryota-murakami Oct 23, 2026
6209ca5
fix(test replay): a withdrawn Play step commits nothing after a faile…
ryota-murakami Oct 23, 2026
beef25f
fix(test replay): strip stop source path, frame name, fact path and t…
ryota-murakami Oct 23, 2026
9bce411
fix(test replay): a clock stepped back no longer keeps a crashed writ…
ryota-murakami Oct 23, 2026
ef34cb1
fix(test replay): the slot label, tab title and debugger thread show …
ryota-murakami Oct 23, 2026
e6aa41a
fix(test replay): strip terminal controls in linear time on dense 8-b…
ryota-murakami Oct 23, 2026
e93600f
fix(test replay): count a surrogate pair split across output entries …
ryota-murakami Oct 23, 2026
3e25f2f
fix(study): Inspect hands its focus to the transport, sequence labels…
ryota-murakami Oct 23, 2026
873adb6
fix(test replay): keep the host's reading across queued output update…
ryota-murakami Oct 23, 2026
4c96c3b
test(test replay): waits of the moves, pane and browser files use REA…
ryota-murakami Oct 23, 2026
af1ee3d
test(test replay): Next stop after a Close or a browser recording tha…
ryota-murakami Oct 23, 2026
e6c1aeb
Merge branch 'codex/c50-pr2-e' into codex/cycle-0050-pr2-application-…
ryota-murakami Oct 23, 2026
bbb0bc5
Merge branch 'codex/c50-pr2-g' into codex/cycle-0050-pr2-application-…
ryota-murakami Oct 23, 2026
9035c03
fix(test replay): an afterSubscribe that throws ends the document wai…
ryota-murakami Oct 23, 2026
e002603
refactor(study pane): the coverage strip's words come from the String…
ryota-murakami Oct 23, 2026
f371587
fix(test replay): the recorded-source slot redraws and reveals only a…
ryota-murakami Oct 23, 2026
c7dd476
test(test replay): a refused Application view's re-post and another r…
ryota-murakami Oct 23, 2026
412dc67
Merge branch 'codex/c50-pr3-f155' into codex/cycle-0050-pr3-slot-tran…
ryota-murakami Oct 23, 2026
68298ae
Merge branch 'codex/c50-pr3-s2' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
6805c9c
test(test replay): reader results are bounded by READER_RESULT_BOUND_…
ryota-murakami Oct 23, 2026
d966577
docs(changelog): 0.2.36.0 says which surfaces cut a long cause and th…
ryota-murakami Oct 23, 2026
230df80
refactor(test replay): the Application document's message handler che…
ryota-murakami Oct 23, 2026
da03157
refactor(study pane): the sticky bars share one observer, the test re…
ryota-murakami Oct 23, 2026
9466983
test(reader dom): the one-event fixture's stop is its first event (F3…
ryota-murakami Oct 23, 2026
ff9da7a
fix(study pane): Show recorded output gives a rebuilt Application pan…
ryota-murakami Oct 23, 2026
0a5fb7b
test(test replay): the 200,000-introducer case names its bound as F28…
ryota-murakami Oct 23, 2026
5d0f602
fix(test replay): /ship pre-landing review fixes: coverage tests F307…
ryota-murakami Oct 23, 2026
30739dc
docs(history store): fileSignals' example uses short times, which the…
ryota-murakami Oct 23, 2026
2bd0278
test(test replay): a replay's cited test file loses its controls and …
ryota-murakami Oct 23, 2026
04563b7
fix(test replay): /ship pre-landing review pass 2 fixes F321-F329, an…
ryota-murakami Oct 23, 2026
56dc1e4
fix(test replay): the capture reason's cut drops a lone high surrogat…
ryota-murakami Oct 23, 2026
f0ced4f
fix(test replay): /ship pre-landing review pass 3 fixes F334-F339: re…
ryota-murakami Oct 23, 2026
22c44df
fix(test replay): /ship Step 11 fixes F341, F343, F347, F348: the lea…
ryota-murakami Oct 23, 2026
1e7b7ce
docs(readme): the 0.2.37.0 behaviors in the packaged README: the row'…
ryota-murakami Oct 23, 2026
5820b1f
chore: bump version and changelog (v0.2.37.0)
ryota-murakami Oct 23, 2026
d631ffc
fix(test replay): CI and hosted CodeRabbit findings of #120 (F350 F35…
ryota-murakami Oct 23, 2026
d0ee451
docs(agents): the ship review limit is /ship's alone; CodeRabbit has …
ryota-murakami Oct 23, 2026
da04315
Merge PR-2's final head d0ee451 into the PR-3 integration branch
ryota-murakami Oct 23, 2026
7edc03f
fix(node test): the bound-elsewhere refusal says the stop is captured…
ryota-murakami Oct 23, 2026
2ef87fd
fix(entry): Open replay during a live run enters the Study compositio…
ryota-murakami Oct 23, 2026
f512dfc
fix(test replay): every surface leaves the old moment at once and a r…
ryota-murakami Oct 23, 2026
4c40bc3
docs: a sealed history of another window reads sealed; a Critical fin…
ryota-murakami Oct 23, 2026
3f0453a
feat(learning summary): the container moves to the Activity Bar for C…
ryota-murakami Oct 23, 2026
c31d031
fix(test replay): a failed slot empties the debugger and resets its b…
ryota-murakami Oct 23, 2026
cba17df
Merge remote-tracking branch 'origin/codex/cycle-0050-pr2-application…
ryota-murakami Oct 23, 2026
089be67
Merge origin/main (62f6aa9, PR-2's squash) into the PR-3 branch
ryota-murakami Oct 23, 2026
13c5ae1
perf(test replay): an unchanged recorded-source slot is left as it is…
ryota-murakami Oct 23, 2026
6588194
fix(browser replay): a move keeps the shown frame while the next one …
ryota-murakami Oct 23, 2026
ce57b0a
test(test replay): the slot's untested cells (placeholder x rename/ov…
ryota-murakami Oct 23, 2026
c26472a
fix(test replay): closing the reader waits, bounded, for the reader p…
ryota-murakami Oct 23, 2026
7acf9ef
test(reader dom): the no-mark case sends a one-event history (F160) a…
ryota-murakami Oct 23, 2026
cfc0eb7
fix(test replay open): no article source beside the replay's slot and…
ryota-murakami Oct 23, 2026
e1937e0
Merge branch 'codex/c50-pr3-b' into codex/cycle-0050-pr3-slot-transit…
ryota-murakami Oct 23, 2026
8c4e154
fix(test replay): the event list's row of the moment being selected i…
ryota-murakami Oct 23, 2026
a6f6378
Merge branch 'codex/c50-pr3-s1' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
a90af93
fix(study pane): the gate's test race and health findings on PR-3 (F3…
ryota-murakami Oct 23, 2026
c64903b
fix(foreign preview): read back a tab name that holds a double quote …
ryota-murakami Oct 23, 2026
1a11792
docs(owned breakpoint): drop the stray comma in acknowledgesPosition'…
ryota-murakami Oct 23, 2026
dbd0149
fix(slot deadline): a passed deadline refuses at once; cancel returns…
ryota-murakami Oct 23, 2026
7d14cb7
fix(test replay): Keep Tab Open never closes a learner's non-text pre…
ryota-murakami Oct 23, 2026
026ef13
fix(playback): the frame-read bound counts from when the leave became…
ryota-murakami Oct 23, 2026
ba8148d
fix(test replay): a slot show that completes after the reader closes …
ryota-murakami Oct 23, 2026
6724847
fix(test replay): a pending slot close failure ends with its replay's…
ryota-murakami Oct 23, 2026
24ed384
fix(test replay): a reader position queued as the write loop ends is …
ryota-murakami Oct 23, 2026
eb9403f
fix(test replay): a recorded path with icon syntax shows as text in t…
ryota-murakami Oct 23, 2026
e09c686
fix(test replay): a failed presentation is reported as itself when th…
ryota-murakami Oct 23, 2026
ae09d84
docs(study workspace): offerSummaryPlacement and nodeSourceSlotUri co…
ryota-murakami Oct 23, 2026
61c8862
test(reader dom): the F156 scroll case needs the section below the 24…
ryota-murakami Oct 23, 2026
518e78a
fix(study pane): no stop control is offered while the position is pen…
ryota-murakami Oct 23, 2026
2e79751
fix(study pane): the open's scroll token is kept until the test repla…
ryota-murakami Oct 23, 2026
abd8ff9
test(study workspace): the fake CodeLens registry matches selectors, …
ryota-murakami Oct 23, 2026
7f44ae6
Merge branch 'codex/c50-pr3-r2' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
a42e565
test(study workspace): the fake Memento, visible-editor events, group…
ryota-murakami Oct 23, 2026
8dc6a5a
test(test replay): the slot show counter counts a show by address too…
ryota-murakami Oct 23, 2026
67d7ca1
fix(replay): a recorded preview that the viewport drops clears the pa…
ryota-murakami Oct 23, 2026
77538e0
Merge branch 'codex/c50-pr3-r1' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
a09b6b0
fix(test replay): Focus source fronts the recorded-source slot while …
ryota-murakami Oct 23, 2026
214c092
fix(entry): a failed Study entry of Open replay is told in Output and…
ryota-murakami Oct 23, 2026
d88b57d
docs(agents): a pull request the hosted CodeRabbit reviewed merges on…
ryota-murakami Oct 23, 2026
f93d5fe
feat(diagnostics): a refused placement guard writes the groups before…
ryota-murakami Oct 23, 2026
b44aef1
Merge branch 'codex/c50-pr3-r3' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
1a8c52b
docs(agents): AGENTS.md in short imperative bullets, every instructio…
ryota-murakami Oct 23, 2026
45f468f
fix(test replay): the slot keeps the left stop's bytes until the nati…
ryota-murakami Oct 23, 2026
9dea1d0
test(test replay): drop the harness shortcut for the leave wait; test…
ryota-murakami Oct 23, 2026
c83a786
Merge branch 'codex/c50-pr3-r4' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
bd6ab7b
F388: name a pending test replay moment as loading in the Study posit…
ryota-murakami Oct 23, 2026
5868b54
Merge branch 'codex/c50-pr3-r5' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
d1bdfa0
F389: clear a refused request's lines when an entry arranges the pane…
ryota-murakami Oct 23, 2026
56c7549
F382: characterize the first Open replay after a run that left its em…
ryota-murakami Oct 23, 2026
49d3692
F391: fail the test whose editor operation made a visible-editors lis…
ryota-murakami Oct 23, 2026
5e863bb
F399: the fake workspace state answers the default only for an undefi…
ryota-murakami Oct 23, 2026
9269f7e
F398: move the placement refusal report limits to constants.ts with u…
ryota-murakami Oct 23, 2026
ba69cbc
F393: sanitize the placement report's tab labels only when a guard re…
ryota-murakami Oct 23, 2026
fe249c6
F389: arrange a lone empty main editor beside Cursor's chat; F390: no…
ryota-murakami Oct 23, 2026
77d0a5a
F395: the close drain waits until no reader position write runs, rest…
ryota-murakami Oct 23, 2026
a7c3535
F394: a refused Keep Tab Open tells the learner once
ryota-murakami Oct 23, 2026
48f1f79
Merge branch 'codex/c50-pr3-r6' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
d984213
Merge branch 'codex/c50-pr3-r7' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
c698cbb
docs(changelog): move PR-3's F389 and F390 bullets out of the release…
ryota-murakami Oct 23, 2026
5151635
F396: the fake recorded viewport drops previews for a pinned pause im…
ryota-murakami Oct 23, 2026
691c7e6
F396: pin the real viewport's pause-image drop that the fake now copies
ryota-murakami Oct 23, 2026
815c253
F392: Focus source waits for the leave settle and its own address's c…
ryota-murakami Oct 23, 2026
1da711b
Merge codex/cycle-0050-pr3-slot-transitions-and-entry into R8
ryota-murakami Oct 23, 2026
1aa12e8
F400: a Restore refused for a foreign preview tab shows its refusal o…
ryota-murakami Oct 23, 2026
904b5ec
F397: README sentences for Focus source, a refused Open replay entry …
ryota-murakami Oct 23, 2026
04e0af8
F382: characterize the first Open replay after a window reload restor…
ryota-murakami Oct 23, 2026
25fc894
F400: two Restore tests read the refusal from the presentation reason…
ryota-murakami Oct 23, 2026
2108fc0
Merge branch 'codex/c50-pr3-r7' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
478ba58
F393: count the sanitizeCause calls on tab labels, not a private method
ryota-murakami Oct 23, 2026
073f6ae
Merge branch 'codex/c50-pr3-r8' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
e7711a6
F405: the harness hands listener errors to an afterEach hook once, be…
ryota-murakami Oct 23, 2026
653b263
F407: record a refused Keep Tab Open of a test replay in one Output e…
ryota-murakami Oct 23, 2026
495c793
F408: the Focus source leave test waits on observable state, not wall…
ryota-murakami Oct 23, 2026
343bf0e
F409: one shared twoStopOwnedRun and startLiveTestRun fixture for the…
ryota-murakami Oct 23, 2026
d640000
Merge branch 'codex/c50-pr3-r8' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
e1e3d4c
F401 F402 F403 F404 F406: lone-empty-group check before the empty ref…
ryota-murakami Oct 23, 2026
3eea429
F406: the empty-cause test also covers no reason and an empty reason,…
ryota-murakami Oct 23, 2026
71b1fe5
Merge branch 'codex/c50-pr3-r6' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
8ed6406
fix(browser replay): the recorded-source label leaves with the stoppe…
ryota-murakami Oct 23, 2026
9d8622a
fix(repository run): the app starts on the project's own port and a b…
ryota-murakami Oct 23, 2026
1902c57
F413: Restore arranges a test replay's composition without an article…
ryota-murakami Oct 23, 2026
3773701
Merge branch 'codex/c50-pr3-r6' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
6003615
docs(agents): Cursor's Grok 4.6 High may run with Fast on (owner, 202…
ryota-murakami Oct 23, 2026
c51272f
fix(repository run): a busy project port is found by connecting to 12…
ryota-murakami Oct 23, 2026
5b6a1c4
Merge branch 'codex/c50-pr3-r9' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
1992b6f
F413: Restore with a test replay selected answers from the slot also …
ryota-murakami Oct 23, 2026
ac150e8
Merge branch 'codex/c50-pr3-r6' into codex/cycle-0050-pr3-slot-transi…
ryota-murakami Oct 23, 2026
d9dac86
F382: mark the removal of the group the Application's own move emptie…
ryota-murakami Oct 23, 2026
e638c1b
Merge branch 'codex/c50-pr3-r7b' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
a558ed3
docs(agents): the Fast-on direction's date in the owner's time zone (…
ryota-murakami Oct 23, 2026
f3f7438
F414,F419-F423: development port check and reader follow Next (timeou…
ryota-murakami Oct 23, 2026
edb342a
Merge branch 'codex/c50-pr3-r10' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
ff90ead
F415-F418, F424: a test replay's Restore is a presentation operation …
ryota-murakami Oct 23, 2026
214f0b8
Merge branch 'codex/c50-pr3-r11' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
d2e233e
F426 (D65): open the app at localhost:<port>; localhost, 127.0.0.1 an…
ryota-murakami Oct 23, 2026
7139a69
Merge branch 'codex/c50-pr3-r12' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
6899861
F433: a failed test replay Restore resets the confirmation and sets t…
ryota-murakami Oct 23, 2026
58ff7b3
Merge branch 'codex/c50-pr3-r14' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
1aa67f6
F427-F432,F434 (D66, D67): own [::1] with a forwarder, port 80 origin…
ryota-murakami Oct 23, 2026
e7f696a
F435: a declared server stop is captured in every webpack layer's ins…
ryota-murakami Oct 23, 2026
944a4d2
Merge branch 'codex/c50-pr3-r15' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
c1f87ad
F427 tests: bound every wait of the forwarder tests so a broken forwa…
ryota-murakami Oct 23, 2026
6bc9eab
Merge branch 'codex/c50-pr3-r13' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
4cd3834
F447: the native participants harness stands in for the [::1] forward…
ryota-murakami Oct 23, 2026
9c84c44
F443 F444: a failed test replay Restore keeps its specific reason, wo…
ryota-murakami Oct 23, 2026
98f1b1d
F448 F453 F455 F457: half-open [::1] forwarder, typed listen failures…
ryota-murakami Oct 23, 2026
d464925
F449 F450 F451 F452 F454 F456 F458: claim refuses a parallel start, s…
ryota-murakami Oct 23, 2026
2d3c327
Close a replaced browser replay's captured-source tabs when a test re…
ryota-murakami Oct 23, 2026
938fa2b
Merge branch 'codex/c50-pr3-r18' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
586f733
F455: forwarder tests close their clients and use a client that reads…
ryota-murakami Oct 23, 2026
7ba10c5
F446: one parser for development module addresses, the real caller na…
ryota-murakami Oct 23, 2026
7329f90
F436 F437 F438 F439 F440 F441 F442 F445 F446: instances of a declared…
ryota-murakami Oct 23, 2026
c7df36b
Merge branch 'codex/c50-pr3-r16' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
ef03b74
Merge branch 'codex/c50-pr3-r17' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
04dc2a4
F461 F462 F463 F464 F465: the dev script reader reads SET in any case…
ryota-murakami Oct 23, 2026
961625a
F460 F467: an older instance stays while a pause is held or captured …
ryota-murakami Oct 23, 2026
0134f2b
F466: a test replay closes only the retired browser replay's own capt…
ryota-murakami Oct 23, 2026
12e5248
F468: the forwarder's close test bounds its first-reply wait; the lar…
ryota-murakami Oct 23, 2026
feff118
Lower the complexity of the dev script reader, the shell splitter and…
ryota-murakami Oct 23, 2026
ccfe301
Merge branch 'codex/c50-pr3-r19' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
45df53a
F469-F473, F475-F477: mask headers and secret flags, last PORT wins, …
ryota-murakami Oct 23, 2026
c7dc3b0
F474: a test replay closes only the exact captured-source tabs the br…
ryota-murakami Oct 23, 2026
c9664ea
Merge branch 'codex/c50-pr3-r20' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
31ea5ad
F478-F486: the dev script reader asserts a port only for understood f…
ryota-murakami Oct 23, 2026
673b292
Merge branch 'codex/c50-pr3-r21' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
c7dcfb9
F487-F492, F496, F497: the dev script reader asserts a port only for …
ryota-murakami Oct 23, 2026
23ebb4f
F493-F495: retired browser-replay tab record keeps a later leave's ta…
ryota-murakami Oct 23, 2026
7fc7c8f
Merge branch 'codex/c50-pr3-r22' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 23, 2026
ce0249c
fix(F498): apply address exclusions only to the closed retired-replay…
ryota-murakami Oct 24, 2026
de1c0c5
fix(F499): read next dev under Bun as unread when .env may set PORT
ryota-murakami Oct 24, 2026
d48587d
wip-F500-F507
ryota-murakami Oct 24, 2026
31bc47a
fix(F500-F507): shadowed script names, quoted assignments, cmd meanin…
ryota-murakami Oct 24, 2026
fff2ec7
Merge branch 'codex/c50-pr3-r23' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
3616917
fix(F508-F514): pnpm/yarn plain-name allow-list, empty dev script, Wi…
ryota-murakami Oct 24, 2026
c5a7499
Merge branch 'codex/c50-pr3-r24' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
647e689
fix(F515-F518): Yarn Berry export unread, npx/bunx path form unread, …
ryota-murakami Oct 24, 2026
65b5e35
Merge branch 'codex/c50-pr3-r25' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
4221973
fix(F519-F523): Yarn Berry shell rejects ;; and trailing '; ', Berry …
ryota-murakami Oct 24, 2026
2bcd914
Merge branch 'codex/c50-pr3-r26' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
cc1658f
Read each script of a Yarn Berry project with the shell of the progra…
ryota-murakami Oct 24, 2026
5ab5cca
Merge branch 'codex/c50-pr3-r27' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
2485b26
test(F525): pin Berry's shell to the scripts Yarn runs, with export r…
ryota-murakami Oct 24, 2026
6e76041
Merge branch 'codex/c50-pr3-r28' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
82c1281
test: build the URL-credential fixture at run time and mark the three…
ryota-murakami Oct 24, 2026
ca55158
fix(F527): drop the localhost resolver rule from VS Code's recorded C…
ryota-murakami Oct 24, 2026
421be1c
docs(F528): list the yarn-shell reason in UnreadScriptError's reason …
ryota-murakami Oct 24, 2026
35d564a
refactor(F530): bundleOfEvaluatedModule takes the bundle identity as …
ryota-murakami Oct 24, 2026
56b545e
test(F536): only the browser replay left last has its tabs closed at …
ryota-murakami Oct 24, 2026
bf197a9
refactor(F532): read the slot deadline from its abort signal (D79)
ryota-murakami Oct 24, 2026
0f93971
refactor(F531): remove sealRuntimeModuleInstance; ConfiguredBrowserRu…
ryota-murakami Oct 24, 2026
6195e2f
refactor(F529): move isModuleInAnotherLayer to a file of its own name
ryota-murakami Oct 24, 2026
352c018
test(F537): Return to Live ends the record of the left browser replay…
ryota-murakami Oct 24, 2026
c0134d5
test(F538): a refused close of a rebuilt tab matched by address keeps…
ryota-murakami Oct 24, 2026
5638eac
test(F534): a failed launcher stop keeps the port claim stopping and …
ryota-murakami Oct 24, 2026
b47503f
test(F535): a newer run's claim reads running while the older release…
ryota-murakami Oct 24, 2026
e94881f
test(F534): order the new import for lint
ryota-murakami Oct 24, 2026
8627116
docs(F527): the recorded browser resolves localhost as the system doe…
ryota-murakami Oct 24, 2026
89928b9
test(F539): an unverified stop overtaken by a newer selection commits…
ryota-murakami Oct 24, 2026
21013db
test(F540): a Play step to an unverified stop, withdrawn by its calle…
ryota-murakami Oct 24, 2026
448b417
test(F541): a Play step to an output, withdrawn by its caller, shows …
ryota-murakami Oct 24, 2026
d496668
Merge branch 'codex/c50-pr3-r31' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
d8dd79a
Merge branch 'codex/c50-pr3-r30' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
83ab92a
Merge branch 'codex/c50-pr3-r29' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
b42bc08
test(F542): drop the assertion on a tab the test closed by hand, and …
ryota-murakami Oct 24, 2026
ba290f5
test(F543): assert the overtaken step's outcome and no error row afte…
ryota-murakami Oct 24, 2026
6568f97
Merge branch 'codex/c50-pr3-r32' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
12fdf72
docs(F544): onResponse no longer names the declared-column mode F248 …
ryota-murakami Oct 24, 2026
8e08973
docs(F545): the within contract paragraph stands above its parameter …
ryota-murakami Oct 24, 2026
c834ab4
test(F546): a withdrawn Play step restored from a committed output sh…
ryota-murakami Oct 24, 2026
68f9e5f
test(F547): a withdrawn Play step does not restart a replay debugger …
ryota-murakami Oct 24, 2026
eb7b253
test(F548): an Inspect overtaken by a newer seek leaves only the seek…
ryota-murakami Oct 24, 2026
5d0621d
test(F549): a Retry of a failed slot overtaken by a seek while its ta…
ryota-murakami Oct 24, 2026
db1cf69
Merge branch 'codex/c50-pr3-r34' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
24eabb8
Merge branch 'codex/c50-pr3-r33' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
4bb49ac
test(F561): retry a Git fixture's removal that meets ENOTEMPTY for a …
ryota-murakami Oct 24, 2026
bb4ff73
fix(F550): bound the dev script reader's breadth with one statement b…
ryota-murakami Oct 24, 2026
04316df
fix(F551): drop the held slot text before the slot's text changes
ryota-murakami Oct 24, 2026
854cab8
fix(F556): stat package.json before reading it
ryota-murakami Oct 24, 2026
3a85e18
fix(F552): ready() matches only the declared port's origin
ryota-murakami Oct 24, 2026
683de07
perf(F555): set TCP_NODELAY on both forwarder sockets
ryota-murakami Oct 24, 2026
b6ce180
fix(F559): throw a typed StudyError for an unexpected bind failure
ryota-murakami Oct 24, 2026
96269dd
style: prettier format F550/F556 sources
ryota-murakami Oct 24, 2026
6ba3979
Merge branch 'codex/c50-pr3-r35' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
2d74afe
Merge branch 'codex/c50-pr3-r36' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
b7d8ac2
Merge branch 'codex/c50-pr3-r37' into codex/cycle-0050-pr3-slot-trans…
ryota-murakami Oct 24, 2026
95f058b
test: cover the development server environment and the placement refu…
ryota-murakami Oct 24, 2026
a4e1165
docs(readme): the 0.2.38.0 behaviors the README lacked, and a package…
ryota-murakami Oct 24, 2026
0293a8b
chore: bump version and changelog (v0.2.38.0)
ryota-murakami Oct 24, 2026
1fe5235
fix: resolve the hosted CodeRabbit review of #121 (F563 to F568)
ryota-murakami Oct 24, 2026
f9f5a94
test: read F565's recorded module through its resources; F567's case …
ryota-murakami Oct 24, 2026
055f819
test: pin the instance map's mappings in F565's test (F572)
ryota-murakami Oct 24, 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
424 changes: 331 additions & 93 deletions AGENTS.md

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# Changelog

## [0.2.38.0] - 2026-10-24 (development candidate)

Cycle 0050's third pull request ([Issue #118](https://github.com/laststance/codebook/issues/118)): a test replay's recorded-source tab and the moves between its moments, opening a replay, Cursor's Learning summary, the browser replay's frames, and a repository-browser run on the project's own port. With it, every defect Cycle 0049 carried is fixed or closed with evidence.

**The recorded-source tab of a test replay.**

- **One tab follows the selected stop.** `Captured-<file>` shows the source that ran at the stop, with the stopped line, an end-of-line label and a CodeLens above the line that carries the whole `Recorded: <path>:<line> · <time> s`. Files of the same name in different folders get their own tab. At an output or the result the tab shows its placeholder from the first line, and Focus source brings the tab forward. A recorded path cannot turn into a link or an icon in the hover or the CodeLens.
- **The tab ends with its replay.** Closing the Study workspace or opening a browser recording closes it, and a pinned tab of a retired replay shows the placeholder, not the last stop.
- **A test replay opened over a browser replay** closes the captured-source tabs that replay had open when you left it, once. Your own files, a pinned or edited tab, and a tab you open afterwards stay, also at the same address; a tab the editor refuses to close is told, and its close is tried again at the next stop.

**Moving between moments.**

- **Every surface leaves the earlier moment together.** At Next stop, Previous stop, a seek or Play, the position line and the playback time already name the requested moment and say `loading…` until it is shown, the event list marks its row, the debugger empties, and the earlier stop's CodeLens and call stack never stand beside another moment's source.
- **Slow or failed moves stay usable.** One 5-second deadline bounds a recorded-source tab's show; Play pauses at a stop whose tab cannot open, and Retry shows that moment again without restarting a replay debugger you stopped. A move you overtake or withdraw leaves only the newest moment on every surface, and selecting a stop again while an output is still being shown shows the stop.

**Opening a replay.**

- **Open replay right after a live run** opens the Study pane with its transport, also beside Cursor's Agent, and an empty main editor beside Cursor's Agent is arranged without a click.
- **No article lines beside a test replay.** The Study pane hides the Repository article's source tab, its `Current source unavailable` lines and its flow while a test replay is selected (a keyboard focus that stood on them moves to the test replay's transport), and the Test replay section scrolls into view once when the replay opens.
- **A file open as a preview tab** no longer stops Open replay. When a destination is still blocked, a dialog names the tab and offers **Keep Tab Open** or **Close Tab**; a tab the editor cannot keep open is told once and written to Output › Codebook.
- **Restore Study workspace layout** with a test replay selected brings the recorded-source tab back to the front without taking the keyboard and gives the grid its sizes back; when it cannot, the Study pane says why, once.
- **Output › Codebook records why a placement was refused** (`presentation:placement-refused`, `presentation:focus-unreported`): the groups and tabs before and after, and the editor's events.

**Cursor's Learning summary.** In Cursor the Learning summary has its own Activity Bar container, with no contribution error. In VS Code it moves once into the chat's side bar at your first replay open, and a view you moved yourself is never moved back.

**The browser replay.** Stepping between stops no longer shows dark frames or `Canceled`: the shown frame stays until the next one is ready, also on a seek. The recorded-source label leaves together with the stopped line.

**Test stops.** A stop declared at the column the debugger advises pauses, and the refusal for a binding elsewhere on the line says where the stop is captured.

**A repository-browser run on the project's own port.**

- **The app runs where its origin points.** Codebook starts `next dev` on the port the project's `dev` script declares (its `-p`/`--port`, or a `PORT` it sets), never on another port, and opens it at `http://localhost:<port>`. `localhost`, `127.0.0.1` and `[::1]` at that port are one application origin, and Codebook holds `[::1]:<port>` for the run, so no other process answers there. The recorded browser resolves `localhost` as the system does, so the app's calls to your other local services reach them.
- **A busy port is refused, not moved.** Your own dev server on that port, an earlier Codebook run that is still stopping, a port the system does not permit and any other bind failure are each refused with the port and the recovery.
- **The `dev` script is read, never run.** Codebook reads a fixed set of forms and reads each script with the meaning of the shell that runs it (`sh`, `cmd` on Windows, Bun's shell, Yarn 2's portable shell). Any other form takes Next's default 3000, and the run resource's `applicationPortSource` says why and quotes the statement by its structure only, never a value. A `dev` script that runs more than 256 statements, and a `package.json` that is not a regular file or is larger than 1 MiB, are not read. The run resource reports `applicationOrigin` and `applicationPortSource`.
- **Server stops in every webpack layer.** A declared server stop is captured in whichever layer's copy of its module runs (`(action-browser)`, `(middleware)`, `(rsc)`), each placed by its own source map; the stop's snapshot serves that copy's own JavaScript and source map, which its hashes name.

**Compatibility.** The MCP API stays 1.8 and the bundled skill is unchanged; the run resource adds `applicationOrigin` and `applicationPortSource`. No stored format changes.

**Observed natively.** In VS Code 1.142.0 and Cursor 3.26.16 on macOS (the Space `local:codebook-qa`, OBS Window Capture, frames inspected): the recorded-source tab, its label and CodeLens and the moves between moments, frame by frame; the first Open replay after live runs (with Cursor's Agent too); Restore; Cursor's Learning summary container; the browser replay's frames; a sign-in through the project's own port and origin to the dashboard, with a server stop in Next's middleware layer. These ran on development candidates of this release's branch, not on its final commit: each observation's candidate commit, VSIX SHA-256, request and take SHA-256 are in [Issue #118](https://github.com/laststance/codebook/issues/118)'s N50 comments ([VS Code](https://github.com/laststance/codebook/issues/118#issuecomment-6372406316), [Cursor](https://github.com/laststance/codebook/issues/118#issuecomment-6372962294)) and rechecks ([F413 and F382](https://github.com/laststance/codebook/issues/118#issuecomment-6375221900), [F459, F474 and F485](https://github.com/laststance/codebook/issues/118#issuecomment-6378038329)). The recordings stay in private storage. Windows and Linux are not run.

## [0.2.37.0] - 2026-10-23 (development candidate)

Cycle 0050's second pull request ([Issue #118](https://github.com/laststance/codebook/issues/118)): a test replay's Application pane and Study section. The recorded-source tab and the moves between moments come with the third.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.2.37.0
0.2.38.0
20 changes: 11 additions & 9 deletions extension/README.md

Large diffs are not rendered by default.

14 changes: 6 additions & 8 deletions extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"displayName": "codebook",
"description": "Connect an external agent to source-grounded codebase studies.",
"publisher": "laststance",
"version": "0.2.37",
"version": "0.2.38",
"private": true,
"engines": {
"vscode": "^1.120.0",
Expand Down Expand Up @@ -230,6 +230,11 @@
"id": "codebook",
"title": "codebook",
"icon": "src/assets/book.svg"
},
{
"id": "codebookLearning",
"title": "Learning summary",
"icon": "src/assets/book.svg"
}
],
"panel": [
Expand All @@ -238,13 +243,6 @@
"title": "codebook",
"icon": "src/assets/book.svg"
}
],
"secondarySidebar": [
{
"id": "codebookLearning",
"title": "Learning summary",
"icon": "src/assets/book.svg"
}
]
},
"views": {
Expand Down
Loading