Typing never triggered a translation. The input handler was wired only to the language detector, so nothing happened until Enter, the Translate button or a language change -- the panel looked broken to anyone who simply typed and waited. Translation now runs 500 ms after the text settles. Each request carries a sequence number. Typing outruns the network, and without that guard a slower earlier response paints its stale text over a newer one. Detection already worked, but wrote its answer only into the text of the collapsed "Auto-detect" option, which a closed select hides -- so it read as "detection is broken" when it had in fact succeeded. Name the language in a row under the selects, and lower the 12-character floor to 5, since short phrases never cleared it. With translate-as-you-type on, skip the standalone detect call: the translation response already carries the detected language, so asking twice only doubled the load on a public mirror. Two of the three fallback mirrors were dead, checked by posting to both endpoints: translate.plausibility.cloud answers 405, and lingva.ml serves an HTML page because it is not a LibreTranslate API at all, so it could only ever produce the "HTML instead of JSON" failure. Drop both and add silentmode.st/libre, which stays a fallback rather than the default because it covers six languages against disroot's fifty. Auto-translate sends text to a translation server as it is typed, so it is a visible toggle rather than silent behaviour. Default on.
3.1 KiB
Pending — uncommitted Theseus changes
Working-tree state that hasn't been committed or shipped. Read this before touching the same files. Update when you land or add work.
Format: each group has a session: label so parallel sessions can see
what belongs to whom and coordinate. Naming convention:
YYYY-MM-DD:short-slug for date-bounded work, or parallel:<theme> for
work owned by a session that isn't the current one.
Last updated: 2026-10-04.
Releases are no longer recorded here: the live version and hashes are in
../site/releases-manifest.json and https://dl.silentmode.st/releases-manifest.json,
and each release commit is Theseus 0.3.x: ... in git history.
session: 2026-10-22:translate-auto
translate 0.1.6 → 0.1.7. PUBLISHED 2026-10-22 to the extension OTA
channel (bns/theseus/extensions/translate/), no Theseus release needed —
but the source is still uncommitted, so git does not yet contain the code
that is live. Commit before anyone rebuilds from this tree.
- bundled-addons/translate/panel.html —
translate-as-you-type (500 ms debounce, sequence-guarded so a slow earlier
request cannot paint over a newer one), a visible "Detected: German" row
under the selects,
DETECT_MIN_CHARS12 → 5, a "Translate as I type" toggle (default on, persisted inui). - bundled-addons/translate/index.js —
fallback mirrors corrected: dropped
translate.plausibility.cloud(405) andlingva.ml(serves HTML; it is not a LibreTranslate API), addedsilentmode.st/libre.
Why: typing never triggered a translation at all — only Enter, the button
or a language change did. Detection did work, but was written only into the
text of the collapsed <option>, where nothing shows it.
Verified against a real Theseus, 6/6 checks (scratchpad/tr-verify.mjs), and
the published artifact was pulled back over the network and staged by a real
Theseus (scratchpad/tr-ota2.mjs).
Noticed while publishing, not fixed: consent and blocker both carry an
updateURL with no channel behind it, so every update check spends two
requests on a guaranteed 404:
https://navigate.st/bns/theseus.x/extensions/{consent,blocker}/updates.json.
session: parallel:collision-policy
Owner's focus: BCNR ↔ ICANN name collision handling. Not mine — leave for that session to land or bundle by explicit ask.
- Android / mobile: ../AriadneResolver/mobile/app/AndroidManifest.xml, BchFetcher.java, Bns.java, build.ps1 — mobile-side collision changes.
- Repo-wide:
.gitignoregained a/.keys/line (harmless).
Live state
Shipped hashes live at ../site/releases-manifest.json and
https://dl.silentmode.st/releases-manifest.json. On-chain pointer at
releases.silentmode.bch. See GOTCHAS.md for the release
gotchas.