theseus/PENDING.md
Local Dev 93e54ca348 translate 0.1.6 -> 0.1.7: translate as you type, and say what was detected
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.
2026-10-22 15:59:09 +03:00

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_CHARS 12 → 5, a "Translate as I type" toggle (default on, persisted in ui).
  • bundled-addons/translate/index.js — fallback mirrors corrected: dropped translate.plausibility.cloud (405) and lingva.ml (serves HTML; it is not a LibreTranslate API), added silentmode.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.

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.