Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
72cc602
fix: Cycle 0058 B: truthful response count, GET text, settled respons…
ryota-murakami Oct 27, 2026
538bfc0
fix: Cycle 0058 A: a stop records and signals exactly what it did, a …
ryota-murakami Oct 27, 2026
4f4abbe
fix: Cycle 0058 C: the LLM Wiki view keeps the watching message until…
ryota-murakami Oct 27, 2026
2e049b0
merge: Cycle 0058 part B into codex/cycle-0058 (Issue #143)
ryota-murakami Oct 27, 2026
43579d5
merge: Cycle 0058 part C into codex/cycle-0058 (Issue #143)
ryota-murakami Oct 27, 2026
6473c5c
merge: Cycle 0058 part A into codex/cycle-0058 (Issue #143)
ryota-murakami Oct 27, 2026
9c82de3
test: Cycle 0058: the journal-bounds test pins its kept bytes; the ki…
ryota-murakami Oct 27, 2026
45fbb62
fix: pre-landing review fixes (Cycle 0058 /ship pass 1, Refs #143)
ryota-murakami Oct 27, 2026
227afb2
fix: pre-landing review fixes, pass 2 (Cycle 0058 /ship, Refs #143)
ryota-murakami Oct 27, 2026
ac40f2f
test: Cycle 0058 /ship pass 3: the own-marker helper's doc names its …
ryota-murakami Oct 27, 2026
a3c400a
fix: Cycle 0058 /ship Step 11 adversarial findings (Refs #143)
ryota-murakami Oct 27, 2026
fbd899b
docs: Cycle 0058: README sentences for 0.2.53.0's server-run behavior…
ryota-murakami Oct 27, 2026
afbf15f
chore: bump version and changelog (v0.2.53.0)
ryota-murakami Oct 27, 2026
0ca807e
fix: Cycle 0058: a Wiki marker read while the run ran keeps the view'…
ryota-murakami Oct 27, 2026
1267246
chore(ci): bump Node.js to 26.12.1 in GitHub Actions and project pins
ryota-murakami Oct 27, 2026
ad13920
revert: move the Node 26.12.1 bump to its own pull request (#145)
ryota-murakami Oct 27, 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
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# Changelog

## [0.2.53.0] - 2026-10-28 (development candidate)

Cycle 0058 ([Issue #143](https://github.com/laststance/codebook/issues/143)), a bug-fix cycle: it fixes the 13 defects Cycle 0057 carried, so a stopped or retried server run does only what it reports, and what the chat and you read about a server run is true. In the native trial N58, on the pinned clone of `laststance/switch-time` with its database stopped (development evidence, no acceptance credit), on macOS 26 (a virtual machine) in VS Code 1.142.0 (Copilot Chat, GPT-6.1 Terra) and this cycle's candidate `6473c5c3`, a natural question about how sign-in finds a user started the server; after a `500` the chat read the run's output, named the refused database connection as observed output, and every stop freed the port within a second. The released source adds review fixes made after `6473c5c3` (the late pause during a stop, the retried stop's check before SIGKILL, the message of a body that cannot be shown, the LLM Wiki view's kept message); N58 did not run again on them. The trial's identities and the hashes of its stills (kept private) are in [Issue #143's comments](https://github.com/laststance/codebook/issues/143).

**Stopping a server run.**

- **A server that pauses while the debugger is letting go is ended at once**: a stop that lets the debugger go first (the server was not paused) now ends the server with SIGKILL when it pauses during that release, instead of letting the release resume it until SIGTERM; **Output › Codebook** journals `node-server.late-pause-killed`. A stop that already finished, or a server that already ended, gets no such signal.
- **A retried stop identifies the server by its start time alone**: a folder never counts, and Codebook reads the start time again before the debugger attaches when its first read failed. When it cannot tell, it signals nothing and the stop fails, naming the process id (this replaces 0.2.52.0's "or its folder").
- **A retried stop checks the server again just before SIGKILL, and SIGKILL still lands within 5 s of the stop's start**: the retried stop confirms the server before SIGTERM and again shortly before the 5 s bound, so SIGKILL never goes to a process group that took the server's id in between; when that check finds another group, nothing is signalled, and when it has not answered by then, nothing is signalled and the stop fails, naming the process id.
- **The close's journal entry says what it sent**: `node-server.closed` reads `killed: true` only when SIGKILL was sent.
- **A server a closed window left running is ended whatever its folder now is**, when its process start matches the recorded one; a record Codebook cannot verify while its group still has members is listed in **Output › Codebook** with its process id and declared port at every start.
- **A continue while the run is stopping is refused with `STALE_PAUSE`**, also while your own pause is held (it answered `LEARNER_PAUSED`).

**What the chat and you read.**

- **One request time limit, stated truthfully** (a correction of 0.2.52.0): `REQUEST_TIMEOUT` after 30 s of running time, paused time excluded; a request that still waits at the run's 10-minute deadline ends the run with `RUNTIME_FAILED`. The 0.2.52.0 entry's "15 minutes of waiting" named a limit the run's 10-minute deadline always reaches first; `codebook://help/node-server` and the packaged README now say so.
- **`codebook_action` no longer promises that a GET changes nothing**: a GET is sent without the confirmation dialog, and the server's own handler decides whether it changes data.
- **The shown body's `… <n> more bytes`** counts what remains of the shown text after masking and path hiding, so it is never negative and never mixes two texts.
- **A body Codebook cannot prepare for display** ends the request with `REQUEST_FAILED`, whose message says that the server answered and with which HTTP status (`The server answered with HTTP 200, but Codebook could not prepare the response body for display.`), instead of leaving the request waiting.
- **The chat names a failure it can see**: with skill 1.0.52, when a run fails or the response is a 5xx, the chat reads the run's output and failure cause before it attributes the failure, and names a cause that output shows (a refused database connection, for example) as observed output.

**LLM Wiki view.**

- **The message above the tree no longer flickers empty when a VS Code watch stops**: the watching message stays until the stopped-watch message replaces it, also while a change of the marker that failed waits for its retry; if Codebook gives up changing the marker, the view stops showing the watching message.

**Compatibility.** The MCP API stays 1.8; the bundled skill moves to 1.0.52. Stored learner data, saved studies and replays, the Wiki's published format, the marker format and the record of a server left running do not change. A server run is still not saved as a learning replay.

## [0.2.52.0] - 2026-10-28 (development candidate)

Cycle 0057 ([Issue #139](https://github.com/laststance/codebook/issues/139)), a feature cycle, last of its three pull requests: the bundled skill (1.0.51) now sends a question about a repository's own Node HTTP server to the `node-server` profile, and stopping, re-signalling and what the run shows are tightened. In the native trial N57, on a pinned clone of `laststance/switch-time` with its local database (development evidence, no acceptance credit), on macOS 26 (a virtual machine) and this part's development candidate `a0481750` (built from a clean tree), `/codebook` with a natural question started the server on the chat's first declaration in both editors: in VS Code 1.142.0 (Copilot Chat, GPT-6.1 Terra) a sign-up request, confirmed by the learner in the dialog, paused in the user-creation hook with the new user's id in the native debugger; in Cursor 3.27.12 (Agent, Grok 4.6 High) a sign-in with an unregistered address paused at the route, the auth hook and the user lookup with its e-mail parameter. The chat reported each response as observed, a `500` when the application's own request deadline ran out during the pauses and the `401` of a run that stopped after the lookup, and every stop freed the port. With the database stopped, the chat reported the failure without a source-only answer. The released source adds review fixes made after `a0481750` (retried stops, the shown body, the start tool's text); N57 did not run again on it. Each run's identities and the hashes of its recordings (kept private) are in [Issue #139's comments](https://github.com/laststance/codebook/issues/139#issuecomment-6452350020).
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Codebook contributes `debug.focusEditorOnBreak: false` as the native debugger de

## Implementation status

This is a preview, not a Marketplace or Open VSX release. The delivered version is **0.2.52.0** once the third pull request of [Cycle 0057](https://github.com/laststance/codebook/issues/139) is merged; until then 0.2.51.0 ([PR #141](https://github.com/laststance/codebook/pull/141), the cycle's second pull request) is the delivered one, and the active cycle Issue says where the delivery stands. Cycle 0057 is a feature cycle that explains a repository's own Node HTTP server live, in three pull requests: the first masks credentials in what every run captures and lays the server profile's launch parts; the second offers the `node-server` profile through MCP, which starts the server under the debugger, sends one declared request (confirmed by you when it changes data) and stops in the route handler's source; the third routes the bundled skill to it (skill 1.0.51), tightens stopping and what the run shows, and carries the native trial in VS Code and Cursor. Cycle 0056 was a bug-fix cycle that closed the defects Cycle 0055 carried, in three pull requests: the first makes an LLM Wiki start say what happens when it joins a start under way, is stopped or passes its bound, and release or write back what it claimed; the second the LLM Wiki view and the reader; the third a saved test replay that Cursor refused to open, with the native trial. [Cycle 0055](https://github.com/laststance/codebook/issues/132) is a feature cycle: **Codebook: Generate LLM Wiki** writes a project's first LLM Wiki through the editor's agent from Codebook's own entry (its first pull request), and an **LLM Wiki** view in the Activity Bar shows, opens and updates it (its second). Cycle 0053 was a feature cycle: a test inside a workspace package runs with that package's Vitest and config, as the package's own `vitest` would, while a test the repository root's config already selects keeps running from the root. Cycle 0054 is a bug-fix cycle that closes the three defects Cycle 0053 carried: a test that ends before a later declared stop says so, a package test's launch asks the repository root again whether its config now selects the test, and the native-trial bootstrap keeps a listing it could not release. Cycle 0051 opened a test replay in the learning-replay composition a browser replay has: the Learning summary in the chat's place, one transport for both replay families, and a Learning summary button that shows a hidden summary again. Cycle 0052 was a bug-fix cycle that closed every defect Cycle 0051 carried, in three pull requests: the first makes replays leave, open and reload without stale frames and makes their entries and exits behave as the learner chose; the second fixes a test replay's moves and its summary page; the third the live runtime's unreadable facts, a browser run's refusals and the tests' hygiene. The MCP API is 1.8. What each earlier cycle delivered, with its tests, trials and limits, is in the [change history](CHANGELOG.md) and in that cycle's record, kept under the tag [`docs-archive-2026-10-20`](https://github.com/laststance/codebook/tree/docs-archive-2026-10-20/docs/cycles); from Cycle 0048 on, the cycle's Issue holds its tasks and state, and its pull requests the results.
This is a preview, not a Marketplace or Open VSX release. The delivered version is **0.2.53.0** once the pull request of [Cycle 0058](https://github.com/laststance/codebook/issues/143) is merged; until then 0.2.52.0 ([PR #142](https://github.com/laststance/codebook/pull/142), the third pull request of Cycle 0057) is the delivered one, and the active cycle Issue says where the delivery stands. Cycle 0058 is a bug-fix cycle that closes the 13 defects Cycle 0057 carried: a stopped or retried server run signals and reports only what it did, what the chat and the learner read about a server run is true (skill 1.0.52), and the LLM Wiki view's message no longer flickers empty. Cycle 0057 was a feature cycle that explains a repository's own Node HTTP server live, in three pull requests: the first masks credentials in what every run captures and lays the server profile's launch parts; the second offers the `node-server` profile through MCP, which starts the server under the debugger, sends one declared request (confirmed by you when it changes data) and stops in the route handler's source; the third routes the bundled skill to it (skill 1.0.51), tightens stopping and what the run shows, and carries the native trial in VS Code and Cursor. Cycle 0056 was a bug-fix cycle that closed the defects Cycle 0055 carried, in three pull requests: the first makes an LLM Wiki start say what happens when it joins a start under way, is stopped or passes its bound, and release or write back what it claimed; the second the LLM Wiki view and the reader; the third a saved test replay that Cursor refused to open, with the native trial. [Cycle 0055](https://github.com/laststance/codebook/issues/132) is a feature cycle: **Codebook: Generate LLM Wiki** writes a project's first LLM Wiki through the editor's agent from Codebook's own entry (its first pull request), and an **LLM Wiki** view in the Activity Bar shows, opens and updates it (its second). Cycle 0053 was a feature cycle: a test inside a workspace package runs with that package's Vitest and config, as the package's own `vitest` would, while a test the repository root's config already selects keeps running from the root. Cycle 0054 is a bug-fix cycle that closes the three defects Cycle 0053 carried: a test that ends before a later declared stop says so, a package test's launch asks the repository root again whether its config now selects the test, and the native-trial bootstrap keeps a listing it could not release. Cycle 0051 opened a test replay in the learning-replay composition a browser replay has: the Learning summary in the chat's place, one transport for both replay families, and a Learning summary button that shows a hidden summary again. Cycle 0052 was a bug-fix cycle that closed every defect Cycle 0051 carried, in three pull requests: the first makes replays leave, open and reload without stale frames and makes their entries and exits behave as the learner chose; the second fixes a test replay's moves and its summary page; the third the live runtime's unreadable facts, a browser run's refusals and the tests' hygiene. The MCP API is 1.8. What each earlier cycle delivered, with its tests, trials and limits, is in the [change history](CHANGELOG.md) and in that cycle's record, kept under the tag [`docs-archive-2026-10-20`](https://github.com/laststance/codebook/tree/docs-archive-2026-10-20/docs/cycles); from Cycle 0048 on, the cycle's Issue holds its tasks and state, and its pull requests the results.

The specification is [goal version 10](PRODUCT_GOAL.md), and the implementation targets external repositories. Historical fixture or coupled-Wiki success is not proof of that destination.

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.2.52.0
0.2.53.0
Loading