Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 14 additions & 0 deletions adoption/bootstrap-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,19 @@ install_uv_tool() {
uv tool install --python 3.13 "${id}==${version}"
}

# rtk 0.50.0's Claude hook windows `git show <rev>:<path>` blobs (a piped
# `| tail` then reads the window, not the file's end), and a rewritten `diff`
# exits 1 instead of 2 on a missing file. recipes/README.md#native-context-mode-and-hooks
# excludes both through rtk's own config. Print-only: never writes that file.
rtk_config_reminder() {
local config="${XDG_CONFIG_HOME:-$HOME/.config}/rtk/config.toml"
if [[ -f "$config" ]] && grep -Eq '^[[:space:]]*exclude_commands[[:space:]]*=' "$config" \
&& grep -Fq '"^git show [^ ]*:"' "$config" && grep -Fq '"diff"' "$config"; then
return 0
fi
printf 'Reminder: for the Claude hook, %s needs [hooks] exclude_commands = ["^git show [^ ]*:", "diff"] (recipes/README.md#native-context-mode-and-hooks); this script does not write it.\n' "$config"
}

install_pin() {
local id="$1"
local entry
Expand Down Expand Up @@ -421,6 +434,7 @@ install_pin() {
installed_pin_ids+=("$id")
[[ -z "$native_floor_kept" ]] || return 0
printf 'Installed %s %s (%s)\n' "$id" "$version" "$kind"
[[ "$id" != rtk ]] || rtk_config_reminder
}

# The pins this run installed, in install order; the version report below
Expand Down
8 changes: 7 additions & 1 deletion adoption/bootstrap.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,12 @@ GitHub-hosted macOS runner; see
text only: the markitdown, tavily-cli, orx and agent-browser notes
attribute their installed-state observations to the 2026-09-23 recording
host. Versions, URLs and hashes are unchanged, so a host at that tag
installs the same artifacts.
installs the same artifacts. It changed after `v2026.09.25.2` again: rtk
moves from 0.49.0 to 0.50.0 and markitdown from 0.1.7 to 0.1.8 (URLs,
hashes and notes), so a host at that tag installs the earlier two. A host
that runs the Claude RTK hook at 0.50.0 also needs the `exclude_commands`
config in [the RTK hook recipe](../recipes/README.md#native-context-mode-and-hooks),
which the script does not write.

Both scripts and both claude-code pins changed after `v2026.09.24.1`: at
that tag the pins are 2.1.280 and `adoption/bootstrap-linux.sh` and
Expand Down Expand Up @@ -325,6 +330,7 @@ GitHub-hosted macOS runner; see
template does not mention is kept), writes atomically and
preserves the original file's mode bits. Never touches `~/.claude.json`
or any credential store.
The template registers the `rtk hook claude` Bash hook, so with the rtk 0.50.0 pin also create `~/.config/rtk/config.toml` with `[hooks]` and `exclude_commands = ["^git show [^ ]*:", "diff"]`: 0.50.0's hook windows `git show <rev>:<path>` blobs, so a piped `| tail` reads the window instead of the file's end, and a rewritten `diff` exits 1 instead of 2 on a missing file ([RTK hook recipe](../recipes/README.md#native-context-mode-and-hooks)); `adoption/bootstrap-linux.sh` only prints a reminder when the key is missing (changed after `v2026.09.25.2`).
The agent definitions in `adoption/agents/claude/` changed after `v2026.09.24.1`:
at that tag `source-scout` and `isolated-builder` declare `effort: medium`
(`source-scout` also `maxTurns: 40`), `evidence-reviewer`,
Expand Down
16 changes: 8 additions & 8 deletions adoption/pins-linux-x86_64.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,11 @@
},
{
"id": "rtk",
"version": "0.49.0",
"version": "0.50.0",
"kind": "tarball",
"url": "https://github.com/rtk-ai/rtk/releases/download/v0.49.0/rtk-x86_64-unknown-linux-musl.tar.gz",
"sha256": "7278231dfd7e6a730a4ab7f847b195bcf02289c2d57622b0dab75a6411100c8f",
"install_note": "Verified against the release's checksums.txt fetched 2026-09-22, matching blueprints/convergence-practice/wsl-native-tools style pins and recipes/README.md's rtk 0.49.0 row.",
"url": "https://github.com/rtk-ai/rtk/releases/download/v0.50.0/rtk-x86_64-unknown-linux-musl.tar.gz",
"sha256": "bc2b8902b0d9c796c82ef45f16ae2307e17757afeca5ee156235a3dc7bda5f89",
"install_note": "Verified against the v0.50.0 release's checksums.txt fetched 2026-09-25 (`sha256sum --check --strict`: OK; the checksums.txt sha256 4c7116898ae812960dfa0de3b3acc5406a0da49209f0ad7bed4d4ed8c4785048 equals the GitHub API asset digest), matching recipes/README.md's rtk 0.50.0 row; qualified against 0.49.0 and switched on nativestack-5975wx-20260925 (evidence/receipts/rtk-050-qualification-20260925.json). The bootstrap installs the binary only: a host that runs the Claude hook also needs the ~/.config/rtk/config.toml exclude_commands in recipes/README.md, or 0.50.0's `git show <rev>:<path> | tail` blob window is live.",
"version_probe": {
"method": "exec",
"command": "rtk",
Expand Down Expand Up @@ -156,11 +156,11 @@
},
{
"id": "markitdown",
"version": "0.1.7",
"version": "0.1.8",
"kind": "uv-tool",
"url": "https://files.pythonhosted.org/packages/59/93/e8a4af0c47551beb6383e226e840cbc811a577b8096eb385251b3fcc8f62/markitdown-0.1.7.tar.gz",
"sha256": "4d1f3c69cd43b82288fdc3653686d759dcf355ee7c681aa6a855aed98a1e4f44",
"install_note": "2026-09-23 catalog-winner-but-unpinned gap: the host that recorded PR #139 (docs/decisions/2026-09-23-claude-user-profile.md) had markitdown 0.1.7 (Microsoft's Office/PDF/HTML-to-Markdown converter) installed as a uv tool on 2026-09-23: its uv-receipt.toml required markitdown==0.1.7 with no-build, and its console script's shebang pointed into the tool's own virtualenv. That is one host's state, not evidence about any other Linux host. The artifact at the URL above was re-downloaded and sha256-hashed independently; it matches PyPI's published digest (https://pypi.org/pypi/markitdown/0.1.7/json urls[].digests.sha256, read 2026-09-23). install_pin's *-uv-tool case runs `uv tool install --python 3.13 markitdown==0.1.7` into UV_TOOL_DIR, so the entry point runs in its own environment. uv resolves the pinned version from PyPI and does not check this sha256; it is recorded as an independent artifact cross-check and satisfies this catalog's fail-closed null-sha256 refusal.",
"url": "https://files.pythonhosted.org/packages/11/60/2431842a40975524da12edd4d64dd7dc31ef56e209b4848ebf0b14ad1431/markitdown-0.1.8.tar.gz",
"sha256": "17188ad827ea79fc264c7b1ca8cf5a242a16278d84cc32f2edc475dbe92812ed",
"install_note": "2026-09-25: 0.1.8 was qualified against 0.1.7 and switched on nativestack-5975wx-20260925 (evidence/receipts/markitdown-018-qualification-20260925.json); that is one host's state, not evidence about any other Linux host. The sdist at the URL above (69,112 bytes) and the wheel uv installs, markitdown-0.1.8-py3-none-any.whl (89,737 bytes, sha256 de7375a50578a39bcbbf13b48c67d99033d988e0ae8ad25af46ed432dbe4cbab), were downloaded and sha256-hashed; both match PyPI's published digests (https://pypi.org/pypi/markitdown/0.1.8/json urls[].digests.sha256 and the PEP 691 Simple API, read 2026-09-25). install_pin's *-uv-tool case runs `uv tool install --python 3.13 markitdown==0.1.8` into UV_TOOL_DIR, so the entry point runs in its own environment. uv resolves the pinned version from PyPI and does not check this sha256; it is recorded as an independent artifact cross-check and satisfies this catalog's fail-closed null-sha256 refusal.",
"version_probe": {
"method": "exec",
"command": "markitdown",
Expand Down
1 change: 1 addition & 0 deletions adoption/platforms/linux-wsl2.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ itself evidence the WSL UVA gap closed.
stdin instead, so run such a release's script with `</dev/null` (step 2 of
[`adoption/bootstrap.md`](../bootstrap.md) has the details and the
`mcp-inspector` case).
The script and its rtk and markitdown pins changed after `v2026.09.25.2`: on main they are 0.50.0 and 0.1.8, and after installing rtk the script prints a reminder when `~/.config/rtk/config.toml` lacks the Claude-hook `exclude_commands` from [the RTK hook recipe](../../recipes/README.md#native-context-mode-and-hooks); it never writes that file.
2. Recreate the SDK only for the `research-runtime` profile using
[`adoption/sdk/README.md`](../sdk/README.md)'s transitive lock; retain the
same exact-match and uncached-reinstall checks as
Expand Down
4 changes: 3 additions & 1 deletion adoption/platforms/macos-arm64.md
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,9 @@ existing claude-code step. There is no more nested platform package, no
native binary manages its own version directory and launcher and keeps
auto-updating on the latest channel afterward. (`adoption/pins-linux-x86_64.json`
changed after `v2026.09.24.1` in `install_note` text only; its `claude-code`
pin is unchanged.)
pin is unchanged. It changed after `v2026.09.25.2` again, in its `rtk` and
`markitdown` entries only; neither tool has an entry in
`adoption/pins-macos-arm64.json`, which is unchanged.)

The pin is a floor: when `~/.local/bin/claude --version` already reports the
pinned version or newer, `install_native` keeps that launcher, downloads and
Expand Down
18 changes: 14 additions & 4 deletions blueprints/token-native-focus/saturation-audit.json
Original file line number Diff line number Diff line change
Expand Up @@ -4702,8 +4702,8 @@
},
{
"component_id": "markitdown",
"repository": "https://github.com/microsoft/markitdown/releases/tag/v0.1.7",
"version": "0.1.7",
"repository": "https://github.com/microsoft/markitdown/releases/tag/v0.1.8",
"version": "0.1.8",
"profile": "supporting",
"role": "Convert supported source documents to readable Markdown",
"installation_assessment": "runtime present at retained native operation date",
Expand Down Expand Up @@ -4748,6 +4748,11 @@
"id": "claude-repository-evidence-20260921",
"path": "evidence/receipts/claude-repository-evidence-20260921.json",
"kind": "native_cli_e2e"
},
{
"id": "markitdown-018-qualification-20260925",
"path": "evidence/receipts/markitdown-018-qualification-20260925.json",
"kind": "native_cli_e2e"
}
],
"retained_operation_ids": [
Expand Down Expand Up @@ -7308,8 +7313,8 @@
},
{
"component_id": "rtk",
"repository": "https://github.com/rtk-ai/rtk/releases/tag/v0.49.0",
"version": "0.49.0",
"repository": "https://github.com/rtk-ai/rtk/releases/tag/v0.50.0",
"version": "0.50.0",
"profile": "core",
"role": "Compact supported command outputs, retain failure/raw recovery",
"installation_assessment": "runtime present at retained native operation date",
Expand Down Expand Up @@ -7404,6 +7409,11 @@
"id": "claude-repository-evidence-20260921",
"path": "evidence/receipts/claude-repository-evidence-20260921.json",
"kind": "native_cli_e2e"
},
{
"id": "rtk-050-qualification-20260925",
"path": "evidence/receipts/rtk-050-qualification-20260925.json",
"kind": "native_cli_e2e"
}
],
"retained_operation_ids": [
Expand Down
4 changes: 2 additions & 2 deletions catalogs/landscape/new-host-grand-list.json
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,7 @@
"linux-wsl2-x86_64": {
"e2e_state": "host_verified",
"bootstrap_pinned": true,
"bootstrap_version": "0.1.7"
"bootstrap_version": "0.1.8"
},
"macos-arm64": {
"e2e_state": "untested",
Expand Down Expand Up @@ -1827,7 +1827,7 @@
"linux-wsl2-x86_64": {
"e2e_state": "host_verified",
"bootstrap_pinned": true,
"bootstrap_version": "0.49.0"
"bootstrap_version": "0.50.0"
},
"macos-arm64": {
"e2e_state": "host_verified",
Expand Down
65 changes: 32 additions & 33 deletions catalogs/landscape/upstream-snapshot.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
"corrected_invalid_archive_digest_ref_attempts": 2,
"newer_stable_release_review_queue": [
"agentsview",
"markitdown",
"vllm",
"dagu",
"skfolio"
Expand Down Expand Up @@ -1201,31 +1200,31 @@
{
"component_id": "markitdown",
"repository": "https://github.com/microsoft/markitdown",
"selected_repository_url": "https://github.com/microsoft/markitdown/releases/tag/v0.1.7",
"selected_version": "0.1.7",
"selected_repository_url": "https://github.com/microsoft/markitdown/releases/tag/v0.1.8",
"selected_version": "0.1.8",
"selected_source_pin": null,
"checks": [
{
"endpoint": "repos/microsoft/markitdown",
"exit_code": 0,
"started_at": "2026-09-21T22:31:41.467781+00:00",
"ended_at": "2026-09-21T22:31:41.941218+00:00",
"stdout_sha256": "bf642bffc687f72f07b24d32c63af73ef145184728528db7012f35a2edb42236",
"started_at": "2026-09-25T20:09:07.664195+00:00",
"ended_at": "2026-09-25T20:09:08.111664+00:00",
"stdout_sha256": "24b85e1f3b5b2acea1291d33ab7da6649fa9d9a0917ac01ca8939ba68eaeed33",
"status": "ok"
},
{
"endpoint": "repos/microsoft/markitdown/releases/latest",
"exit_code": 0,
"started_at": "2026-09-21T22:31:41.941316+00:00",
"ended_at": "2026-09-21T22:31:42.262479+00:00",
"stdout_sha256": "08016b30179f7cacdc5791e8852abdd4a5a02f08ca33a6ebdeb6c138c05e1656",
"started_at": "2026-09-25T20:09:08.111772+00:00",
"ended_at": "2026-09-25T20:09:08.395510+00:00",
"stdout_sha256": "3aa3cf5ae4dc923c6eaabe024e4584447f74dc40a3c8b0f7a4f9fcf03e5e510b",
"status": "ok"
},
{
"endpoint": "repos/microsoft/markitdown/commits/v0.1.8",
"exit_code": 0,
"started_at": "2026-09-21T22:31:42.262659+00:00",
"ended_at": "2026-09-21T22:31:42.692444+00:00",
"started_at": "2026-09-25T20:09:08.395640+00:00",
"ended_at": "2026-09-25T20:09:08.760923+00:00",
"stdout_sha256": "82210f399d03b385c46ba111f8c775adcbdd9e7c9aebd6dcd4d28be5f6b9d5d9",
"status": "ok"
}
Expand Down Expand Up @@ -1254,7 +1253,7 @@
"adoption_recommendation": "retain_selected_pending_capability_comparison",
"source_pin_kind": "version_only",
"primary_repository": "https://github.com/microsoft/markitdown",
"release_relationship": "newer_stable_release_review_pending"
"release_relationship": "selected_version_matches_latest_stable"
},
{
"component_id": "mcp-inspector",
Expand Down Expand Up @@ -1768,54 +1767,54 @@
{
"component_id": "rtk",
"repository": "https://github.com/rtk-ai/rtk",
"selected_repository_url": "https://github.com/rtk-ai/rtk/releases/tag/v0.49.0",
"selected_version": "0.49.0",
"selected_repository_url": "https://github.com/rtk-ai/rtk/releases/tag/v0.50.0",
"selected_version": "0.50.0",
"selected_source_pin": null,
"checks": [
{
"endpoint": "repos/rtk-ai/rtk",
"exit_code": 0,
"started_at": "2026-09-21T22:32:05.566557+00:00",
"ended_at": "2026-09-21T22:32:06.411882+00:00",
"stdout_sha256": "81d2ce0e8b76d2294b953413f269623984109e01cc2c27701da651cefeb6a93e",
"started_at": "2026-09-25T20:09:06.688018+00:00",
"ended_at": "2026-09-25T20:09:07.077689+00:00",
"stdout_sha256": "1743ded3363d2bdcf86ff118d0575a487b8bed71941dcf8fded67b043fa739bf",
"status": "ok"
},
{
"endpoint": "repos/rtk-ai/rtk/releases/latest",
"exit_code": 0,
"started_at": "2026-09-21T22:32:06.412123+00:00",
"ended_at": "2026-09-21T22:32:07.171116+00:00",
"stdout_sha256": "b5ab7424cf4eaa3861dd258ccc65ddebdd8bfcb24aa64f32cae58338ff959f17",
"started_at": "2026-09-25T20:09:07.077794+00:00",
"ended_at": "2026-09-25T20:09:07.344426+00:00",
"stdout_sha256": "247043896c94397b0ad595b176f21b70b80967c84bcb85ee2bdcb97cf9f104a4",
"status": "ok"
},
{
"endpoint": "repos/rtk-ai/rtk/commits/v0.49.0",
"endpoint": "repos/rtk-ai/rtk/commits/v0.50.0",
"exit_code": 0,
"started_at": "2026-09-21T22:32:07.172024+00:00",
"ended_at": "2026-09-21T22:32:07.798001+00:00",
"stdout_sha256": "3b0484210c3f6f65ef7cb3f48dcd05f8f98cc724b75b2775ccac8bccc96adba7",
"started_at": "2026-09-25T20:09:07.344600+00:00",
"ended_at": "2026-09-25T20:09:07.664062+00:00",
"stdout_sha256": "3ed900f60361792b8c8fa84b1be35988bed740390f9b352ac99f31d26c24d1b9",
"status": "ok"
}
],
"canonical_repository": "https://github.com/rtk-ai/rtk",
"archived": false,
"disabled": false,
"default_branch": "develop",
"pushed_at": "2026-09-21T15:06:25Z",
"pushed_at": "2026-09-25T10:14:06Z",
"license_spdx": "Apache-2.0",
"latest_stable_release": {
"tag_name": "v0.49.0",
"published_at": "2026-09-11T08:52:38Z",
"html_url": "https://github.com/rtk-ai/rtk/releases/tag/v0.49.0",
"target_commitish": "b1c0dc00649c50fbe8930f849c800d4d6ca12091",
"tag_name": "v0.50.0",
"published_at": "2026-09-24T10:02:31Z",
"html_url": "https://github.com/rtk-ai/rtk/releases/tag/v0.50.0",
"target_commitish": "1d87b8e719ce0a50c223cd93ca64dd16921f9aec",
"prerelease": false,
"draft": false
},
"latest_release_source": {
"ref": "v0.49.0",
"sha": "b1c0dc00649c50fbe8930f849c800d4d6ca12091",
"html_url": "https://github.com/rtk-ai/rtk/commit/b1c0dc00649c50fbe8930f849c800d4d6ca12091",
"committed_at": "2026-09-11T08:52:10Z"
"ref": "v0.50.0",
"sha": "1d87b8e719ce0a50c223cd93ca64dd16921f9aec",
"html_url": "https://github.com/rtk-ai/rtk/commit/1d87b8e719ce0a50c223cd93ca64dd16921f9aec",
"committed_at": "2026-09-24T10:01:59Z"
},
"status": "metadata_checked",
"adoption_recommendation": "retain_selected_pending_capability_comparison",
Expand Down
4 changes: 2 additions & 2 deletions docs/native-token-ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The [Linux workflow](../.github/workflows/native-token-e2e.yml) installs and inv

| Pin | Upstream installation | Actual acceptance |
| --- | --- | --- |
| RTK 0.49.0 | Official `rtk-x86_64-unknown-linux-musl.tar.gz` and `checksums.txt`; check the exact asset hash, inspect members, then native `tar -xf` | Two fixture commit subjects survive filtered output; `rtk proxy git log -2` equals original stdout; missing Git reference remains a failure; fixture-local `gain --format json` retained |
| RTK 0.50.0 | Official `rtk-x86_64-unknown-linux-musl.tar.gz` and `checksums.txt`; check the exact asset hash, inspect members, then native `tar -xf` | Two fixture commit subjects survive filtered output; `rtk proxy git log -2` equals original stdout; missing Git reference remains a failure; fixture-local `gain --format json` retained |
| QMD 2.8.3 | `npm install --global --prefix "$PREFIX" @tobilu/qmd@2.8.3` | Named BM25 collection, search/get with exact source body inside the pinned output framing, update and retrieval from fresh CLI processes, then owned collection removal |
| Repomix 1.18.0 | `npm install --global --prefix "$PREFIX" repomix@1.18.0` | Explicit two-file XML contains the complete original source and no extra file; separate compressed pack retains structure, without claiming complete implementation fidelity |
| TOON 4.1.1 | `npm install --global --prefix "$PREFIX" @toon-format/cli@4.1.1` | Encode/statistics, strict decode with equal JSON values/types, and a rejected truncated array |
Expand Down Expand Up @@ -32,4 +32,4 @@ GitHub uploads only the sanitized result directory for 14 days, including a fail

RTK's returned counters are local estimates. QMD has no savings counter; Repomix/TOON token reports describe representations. Neither this job nor a smaller fixture output proves reduced provider billing. Follow [the session handbook](token-session-handbook.md) for native adoption and [the lifecycle guide](../adoption/lifecycle.md) for stateful service/new-PC acceptance.

Primary sources: [RTK v0.49.0](https://github.com/rtk-ai/rtk/tree/v0.49.0), [QMD v2.8.3](https://github.com/tobi/qmd/tree/v2.8.3), [node-llama-cpp install controls](https://node-llama-cpp.withcat.ai/guide/building-from-source), [Repomix v1.18.0](https://github.com/yamadashy/repomix/tree/v1.18.0), [TOON v4.1.1](https://github.com/toon-format/toon/tree/v4.1.1).
Primary sources: [RTK v0.50.0](https://github.com/rtk-ai/rtk/tree/v0.50.0), [QMD v2.8.3](https://github.com/tobi/qmd/tree/v2.8.3), [node-llama-cpp install controls](https://node-llama-cpp.withcat.ai/guide/building-from-source), [Repomix v1.18.0](https://github.com/yamadashy/repomix/tree/v1.18.0), [TOON v4.1.1](https://github.com/toon-format/toon/tree/v4.1.1).
Loading
Loading