Repository navigation
chore: v0.10.0 - #59
Merged
Merged
Conversation
Core says everything it has to say in English now, and the sentences it sends to a client carry a stable code beside them. The desktop app needs a tag to pin before it can read any of it. What changed for anyone reading the protocol: - Every human-readable sentence is a `Msg` — a code, the arguments that fill it, and the English text — rather than a `String`. `Event::RequestFailed.message`, `ProxyChanged.detail`, `L1Result.error` and `HistoryRow.error` are all `Msg` now. `ProxyChanged` also gained `failed`, the stage the connection got stuck at. - A control-plane error responds with a JSON `Msg` rather than a plain-text body. - The synthesized default route is `default` and its catch-all rule is `catch-all`, not 默认 and 兜底. - The request store gained `error_code` and `error_args` (schema 13), so a failure keeps its code when the app reads history back. - `tw-adopt` writes English markers and English field names into the user's own files, and `tw-scan`'s built-in rules have English ids and reasons. A client adopted by 0.9.x cannot be restored by 0.10, and an override file that disables a rule by its old Chinese id reports that the id is unknown. `CONTROL_API_VERSION` goes to 2 for all of it. A client built against 1 would render these as strings — a screenful of JSON — so it is better that it refuses at the handshake and says to rebuild. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Core says everything it has to say in English now, and the sentences it sends to
a client carry a stable code beside them. The desktop app needs a tag to pin
before it can read any of it.
What changed for anyone reading the protocol
Msg— a code, the arguments that fillit, and the English text — rather than a
String.Event::RequestFailed.message,ProxyChanged.detail,L1Result.errorandHistoryRow.errorare allMsgnow.ProxyChangedalso gainedfailed, thestage the connection got stuck at.
Msgrather than a plain-textbody.
defaultand its catch-all rule iscatch-all, not 默认 and 兜底.error_codeanderror_args(schema 13), so afailure keeps its code when the app reads history back.
tw-adoptwrites English markers and English field names into the user's ownfiles, and
tw-scan's built-in rules have English ids and reasons.CONTROL_API_VERSIONgoes to 2 for all of it. A client built against 1 wouldrender these as strings — a screenful of JSON — so it is better that it refuses
at the handshake and says to rebuild.
In this release
#53, #54, #55, #56, #57, #58, plus #52 which made
mainthe branch thecontract describes.
Verified
cargo fmt --all -- --check,cargo clippy --workspace --all-targets -- -D warnings,cargo test --workspace(78 suites, 0 failures) and./scripts/smoke.sh(51 passed, 0 failed).🤖 Generated with Claude Code