Skip to content

claude: status says where the window came from on a computer with no engine (#1246) - #1258

Merged
gen16k merged 1 commit into
mainfrom
fix/1246-status-says-where-the-window-came-from
Sep 6, 2026
Merged

gen16k merged 1 commit into
mainfrom
fix/1246-status-says-where-the-window-came-from

Conversation

@gen16k

@gen16k gen16k commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

A gap left by #1257 (#1246), found while checking that change on a real host.

#1257 made waired claude enable declare a reachable window on a computer
with no engine of its own — the whole point of #1246's third part. It did not
teach waired claude status the same thing: that command still resolves only
the local window, so on exactly the host the change was for it printed

local window:       unknown (agent not answering)  (managed settings: 131072)

Two things wrong with that on a perfectly healthy engine-less computer: the
number it reports as unverifiable is the one actually in force, and "agent not
answering" is a false diagnosis of a daemon that is answering fine.

The line now

local window:       none here — 131072 from another computer  (managed settings: 131072)

and, when the file has fallen behind, the stale marker and the fix still appear
against that number — the disagreement #408 exists to surface keeps surfacing.

The label stays local window, because that is what it is called on every
other host and what troubleshooting.md names; the value is what says where the
number came from. Introducing a second label for one host would make the
troubleshooting section teach two.

The reachable window is resolved only when there is no local one — the same
order waired claude enable writes in — so a host that serves pays for no mesh
read on status.

Tests

TestClaudeWindowStatusLine_NoEngineHere in
cmd/waired/claude_context_window_test.go: the number and its provenance, the
stale marker still firing against it, an unwritten managed file stated rather
than implied, and — the row that keeps the change honest — a host that does
serve still answering for itself. The four existing subtests gain the new
argument and are otherwise untouched.

Docs

troubleshooting.md (+ja) already describes this line; one sentence says what
it reads on a computer with no engine.

Checks

go build ./..., go test ./..., gofmt -l,
golangci-lint run --max-same-issues=0, i18n-pair-guard.sh.

Refs #1246

🤖 Generated with Claude Code

https://claude.ai/code/session_01HJUUSmAfbRdjER1seDdjXm

…engine

waired-agent#1246 made `waired claude enable` declare a reachable window on a
computer with no engine of its own, but left `waired claude status` reading the
local window alone. On exactly the host that change was for, status therefore
printed "unknown (agent not answering)" — a different number from the one
actually in force, and a false diagnosis of a perfectly healthy computer whose
daemon was answering fine.

The line now reads `none here — <n> from another computer`, and keeps the stale
check against that number so the disagreement #408 exists to surface still
surfaces. The label stays "local window" because that is what it is called on
every other host and in the docs; the value is what says where the number came
from.

The reachable window is resolved only when there is no local one, the same
order enable writes in, so a host that serves pays for no mesh read.

Refs #1246

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HJUUSmAfbRdjER1seDdjXm
Signed-off-by: gen16k <gen16k@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 6, 2026 •

Copy link
Copy Markdown

📘 Docs preview — the preview channel for this PR has been deleted now that it is closed.

@gen16k
gen16k merged commit e4311b9 into main Sep 6, 2026
33 checks passed
@gen16k
gen16k deleted the fix/1246-status-says-where-the-window-came-from branch September 6, 2026 10:03
gen16k added a commit that referenced this pull request Sep 6, 2026
… every page in both languages (#1264)

Restructures docs.waired.ai around the order a person actually meets Waired, and rewrites every page from zero in both languages against a saved corpus of human-written documentation (Tailscale and Discord for English; LINE Developers, SmartHR, and the JTF style guide for Japanese). Owner request of 2026-09-06.

## Structure

- 32 page pairs become 56, in eight sidebar groups that follow the journey: Get started → Install and set up → Use it from your tools → Models and routing → The Waired app and console → Fix a problem → How it works → Reference. Every group and item has a Japanese sidebar label (the ja sidebar was all English before).
- The four longest pages are split so a reader lands on the thing they came for: first-run becomes Sign in / Set up in the browser / Set up in the terminal / Servers and auth keys / Run setup again; troubleshooting becomes a hub plus six symptom pages; the CLI reference becomes a hub plus five command-group pages; the Claude Code guide gains How turns are routed / Subagents / The status line.
- New pages for things that had none: Meet the Waired app, How Waired chooses a model, Choose which computer answers (routing), Share this computer, Notices, The Status… report.
- URLs the product prints are unchanged (`/quickstart/`, `/public-share/`, `/reference/cli/`, `/reference/model-catalog/`, `/reference/install-options/`). Moved pages get 301s in both `astro.config.mjs` and `firebase.json`: `/getting-started/first-run/` → `/getting-started/sign-in/`, `/guides/models/` → `/guides/choose-a-model/`, `/guides/public-share/` → `/public-share/`, and their `/ja/` twins. The first two of those were already 404s on the live site.
- The `what-is-waired` figure is now HTML and CSS instead of an SVG, so it follows the site theme and is readable in both languages.

## Prose

- English: one voice (Tailscale's), the reader is "you", UI actions are *select* / *press* / *run*, UI labels are `**bold**`, product output is quoted verbatim, no dash chains or parentheticals.
- Japanese: 敬体, no space between Japanese and Latin characters (LINE style), [操作対象] / 「表示文字列」 / screen names without brackets, dictionary-form task headings. The 2026-09-06 owner decisions are recorded in `docs-site/TRANSLATION.md` §Register, next to the 106 existing term rulings, all of which are applied.
- Japanese paragraphs are written on one line. Browsers drop a soft line break between two Japanese characters but render one next to a Latin character as a space, so a wrapped source cannot keep the no-space rule. The rule and its reason are in TRANSLATION.md.
- Retired vocabulary is gone from both trees: the AI / your AI, graphics card, graphics memory, AI engine, speed check, under-spec, AI model, tray (outside the program name `waired-tray`), and the bare 「窓」 for context window.
- The owner-ruled public wording on what reaches Anthropic (waired#1313) is on the Claude Code guide and the privacy page, with the fail-closed decision cited.

## Kept in step with main

Three commits landed on `main` while this branch was open and are carried into the pages that now hold the text: Qwen3.8 Flash Next and the never-chosen Qwen3.5 122B (#1259, on How Waired chooses a model), the `none here` form of the local window line (#1258, on the Claude Code troubleshooting page and the coding-tools CLI reference), and the Public Share refusal wording (#1256, in the base).

Two in-flight PRs were coordinated with their sessions and are written into these pages ahead of them, so their rebases keep the text: the lighter variants of Qwen3.8 27B and Qwen3.6 35B-A3B and the catalog memory-column sentence (#1268, which lands first), and the app labels that the fix for #1269 introduces (`Sign in…`, `Pause Waired` / `Resume Waired`, and the `○ Paused` top line). The app's Disconnect and `waired pause` are one switch, so the pause page now has one section for it. Until #1269 lands the app still shows `Sign in...`, `Disconnect`, and `○ Disconnected`.

## Guards and tests

- New `scripts/ci/docs-links-check.mjs` resolves every root-relative link and `#anchor` in `dist/` and runs after the build in `deploy-docs.yml`. Astro only fails on a bad sidebar slug; body links to renamed pages built green and 404'd before.
- `i18n:report`: 56 pairs, 0 out of sync. `i18n-pair-guard` and `docs-surface-guard`: OK against main.
- Two Go test comments cite the pages that now hold the sentences they quote (`internal/router/reason_lines_test.go`, `internal/gui/tray/status_report_test.go`). No pinned string changed. `go test ./internal/router/ ./internal/gui/tray/` passes.

## Screenshots

Four of the five captures are real and included:

- `setup-wizard-progress.png` and `setup-wizard-progress-ja.png`, taken with Playwright against the development console during a real 1.9 GB download, masked in the DOM (device renamed to `my-desktop`, account chip and pre-release banner hidden).
- `app-ready.png` and `app-not-signed-in.png`, taken on a Mac at 2× in the dark appearance: the menu opened and read through System Events, captured on its own rectangle, and the account row repainted in the image so no real address ships. `CAPTURES.md` records the method.

`claude-code-statusline.png` stays a labelled placeholder until a release prints the `⚡` segment the docs quote (0.0.3-rc5 prints it without the prefix); tracked in #1270. Taking the signed-out capture found that the app's **Sign out…** on macOS signs nothing out; filed as #1269. The fix for it also changes the app's `Sign in...` label to `Sign in…`, so the docs quote that form; until it lands the app shows three periods.

## Why one PR

The plan allowed two. Get-started and install pages link forward to guide, troubleshooting, and reference pages that only exist in the new structure, so landing the first half alone would have shipped 404s. Review by group is still possible: each group is one sidebar section, and each commit is one slice.

Refs waired-ai/waired#1314
Fixes #1254

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_019puN41reeo6o9gXkiRTbBr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant