Theseus Navigator — Silent Mode's Electron browser with the Ariadne resolver built in.
Find a file
Local Dev 6b2c4b25c0 feat(pdf-editor): read, mark up and reshape a PDF without leaving the browser
A PDF that needs a signature, a highlight or a page removed currently sends
the user out to a desktop application or, worse, to a web service that wants
the document uploaded first. Both are poor answers for a browser whose point
is that nothing has to leave the machine. This is a full-tab editor that opens
a PDF, marks it up, fills its forms and saves a new copy, entirely locally.

Two engines, vendored rather than installed, because an add-on ships as a
self-contained folder over the signed update channel and nothing runs a
package manager on the way: pdf.js reads and renders, pdf-lib writes. They
share no state. Everything in between lives in PDF user space — points,
origin bottom-left — which is the one coordinate vocabulary both speak, so a
mark survives zooming, rotating and reordering with no conversion table and
save-time needs to know nothing about how a page happened to be displayed.

The page strip is built from pdf.js's PDFPageView components rather than its
PDFViewer, which renders pages in the file's own order and cannot hide,
reorder or individually rotate one — three of the features here. Text layers
are ours and stay attached for every page, drawn or not, because Theseus's
find bar is Chromium's findInPage over the live DOM and a torn-down text layer
is a page Ctrl+F cannot see. Canvases are virtualised; a letter page at 100%
is 3.4 MB of bitmap.

Redaction is the part worth being careful about. A black box over text hides
nothing — the text stays in the content stream and comes straight out of a
copy-paste — so the editor says so in a modal before the tool can be used,
and on save rebuilds each redacted page as an image, which genuinely removes
it. Pages that were not redacted are untouched. Form widgets and links are
kept, since they were never the leak.

Saving never writes over the original: every save reloads the source bytes and
replays the session onto a fresh copy, so a botched save cannot poison the
next one.

Out of scope for this first version: editing the text that is already in the
document, and writing XFA forms back (pdf-lib cannot, so those are fill-and-
print only, and the editor says so on open).
2026-09-20 20:58:21 +02:00
addon-build/docx-editor feat(docx-editor): edit Word documents without quietly eating what Word put in them 2026-09-20 20:46:29 +02:00
bundled-addons feat(pdf-editor): read, mark up and reshape a PDF without leaving the browser 2026-09-20 20:58:21 +02:00
dev Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins 2026-08-31 01:38:55 +02:00
docs feat(pdf-editor): read, mark up and reshape a PDF without leaving the browser 2026-09-20 20:58:21 +02:00
lib feat: community extensions — publish with a BCDN name, install from Settings, theseus.x catalog 2026-09-20 15:26:30 +02:00
nsis Ariadne 0.1.1 + Theseus fetches it from silentmode.st (no more bundling) 2026-09-08 01:27:51 +02:00
scripts fix(theseus/addons): windows-tar fixes for the addon updater, verified end-to-end 2026-09-07 22:28:55 +02:00
snapshots Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins 2026-08-31 01:38:55 +02:00
addon-inject-preload.js feat(theseus/bchwallet): window.bitcoincash dapp bridge with per-origin permissions 2026-09-06 02:56:34 +02:00
addon-tab-preload.js feat(theseus/addons): CDP capture + editor Discard + manual update controls 2026-09-08 02:27:36 +02:00
addon-update-pubkeys.js feat(theseus/addons): bake operator pubkey — signed update endpoint now live 2026-09-07 23:57:47 +02:00
addon-updater.js feat: community extensions — publish with a BCDN name, install from Settings, theseus.x catalog 2026-09-20 15:26:30 +02:00
addons-host.js feat(theseus/addons): context-menu-item capability + api.revealSidebar 2026-09-20 18:27:10 +02:00
address-picker-preload.js Ship Theseus 0.3.4 3d6d3d6a (address-picker delete X, Enter picks highlight, URL bar override) 2026-09-02 04:28:54 +02:00
address-picker.html Ship Theseus 0.3.4 3d6d3d6a (address-picker delete X, Enter picks highlight, URL bar override) 2026-09-02 04:28:54 +02:00
approval-preload.js feat(theseus/bchwallet): per-site payment allowance for remembered sends 2026-09-06 12:43:17 +02:00
approval.html fix(theseus/light): sweep hardcoded acid → var(--acid), Theseus button uses BCH dark 2026-09-08 01:06:40 +02:00
auth-prompt-preload.js fix(theseus): prompt for HTTP authentication instead of showing the bare 401 2026-09-15 22:30:29 +02:00
auth-prompt.html fix(theseus): prompt for HTTP authentication instead of showing the bare 401 2026-09-15 22:30:29 +02:00
bcnr-origin.js Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins 2026-08-31 01:38:55 +02:00
bcnr-preload.js feat(theseus): consume owner-signed DNS records alongside on-chain records 2026-09-16 00:53:13 +02:00
BROWSER-PROMPT.md docs(theseus/prompts): tool-agnostic phrasing in session-prompt templates 2026-09-10 22:21:19 +02:00
chrome.html feat(theseus): Firefox-style tab overflow — scroll arrows, earliest tabs slide out 2026-09-20 16:50:24 +02:00
collision-preload.js Collision modes (BCNR/ICANN) + root TLD cert + VPS electrum-source indexer 2026-08-02 11:39:00 +02:00
collision.html Theseus: in-tab collision prompt + toggle-style switcher + auto-switch 2026-08-02 14:43:31 +02:00
DESIGN-integrated-wallet.md Ship Theseus 0.0.8: window.bcnr dApp API + eTLD+1 permission origins 2026-08-31 01:38:55 +02:00
DESIGN-password-manager.md Snapshot in-progress work: Ariadne mobile, Theseus password manager, Hephaestus 2026-08-14 23:17:18 +02:00
DESIGN-wallet-multi-account-amendment.md docs(theseus): draft wallet multi-account amendment 2026-09-09 02:17:01 +02:00
downloads-preload.js Theseus: download tracker, search split, discover-more tier, UX polish 2026-08-02 15:31:47 +02:00
downloads.html Theseus: download tracker, search split, discover-more tier, UX polish 2026-08-02 15:31:47 +02:00
engine-picker-preload.js Theseus: Firefox-style search picker (favicons, catalog, scan) 2026-07-30 22:55:52 +02:00
engine-picker.html Theseus: download tracker, search split, discover-more tier, UX polish 2026-08-02 15:31:47 +02:00
error-preload.js feat(theseus/error): offline banner + BCNR did-you-mean on typos 2026-09-04 20:21:30 +02:00
error.html fix(theseus/light): sweep hardcoded acid → var(--acid), Theseus button uses BCH dark 2026-09-08 01:06:40 +02:00
GOTCHAS.md docs: VPS is SilentMode (not Coinspectrum); sketch storage-as-product roadmap 2026-08-18 03:21:03 +02:00
home-preload.js fix(theseus/home): dynamic search-engine name in placeholder 2026-09-08 00:20:37 +02:00
home.html theseus: home page carries the Theseus icon; silentmode.st/theseus favicon path 2026-09-20 16:29:35 +02:00
link-status-preload.js Theseus: link-hover status bar (bottom-left href pill) 2026-08-29 15:49:30 +02:00
link-status.html feat(theseus/chrome): Ariadne's Thread registry menu, address-bar overflow fix, full-width link pill 2026-09-09 11:40:46 +02:00
main.js feat(theseus/addons): context-menu-item capability + api.revealSidebar 2026-09-20 18:27:10 +02:00
messages-preload.js Hermes: optional bind to password vault (skip the second mnemonic prompt) 2026-08-19 00:38:52 +02:00
messages.html fix: use BCH-primary #0AC18E in light mode + strip Electron token from UA 2026-09-08 01:04:27 +02:00
package-lock.json chore(theseus): Electron 33 → 44 (Chromium 130 → 152) 2026-09-20 14:19:20 +02:00
package.json chore(theseus): 0.3.49 — Electron 44, community extensions, title-bar tabs, HTTP auth, local files, signed DNS 2026-09-20 16:08:50 +02:00
PACKAGING-PROMPT.md Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
PENDING.md Ship Theseus 0.0.2 b62ecf52 (shield green + picker→Search + toggle refactor) 2026-08-06 01:55:46 +02:00
popover-preload.js Collision modes (BCNR/ICANN) + root TLD cert + VPS electrum-source indexer 2026-08-02 11:39:00 +02:00
popover.html feat(theseus): consume owner-signed DNS records alongside on-chain records 2026-09-16 00:53:13 +02:00
preload.js feat(theseus): hold or right-click Back/Forward for the history list 2026-09-20 16:07:34 +02:00
pw-fill-preload.js Theseus UX batch: tabs, address history, password autofill MVP, home cards 2026-08-17 02:17:12 +02:00
pw-fill.html Theseus UX batch: tabs, address history, password autofill MVP, home cards 2026-08-17 02:17:12 +02:00
README.md Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
RELEASE-HANDOFF.md Ship Theseus 0.0.2 (SameSite cookie shim) 2026-08-05 18:51:16 +02:00
ROADMAP-identity-wallet.md docs(theseus): note the Siacoin wallet's derivation and node-URL policy 2026-09-06 18:49:33 +02:00
SESSION-PROMPT-identity-wallet.md docs(theseus/prompts): tool-agnostic phrasing in session-prompt templates 2026-09-10 22:21:19 +02:00
settings-preload.js feat: community extensions — publish with a BCDN name, install from Settings, theseus.x catalog 2026-09-20 15:26:30 +02:00
settings.html settings: the extensions link reads just "Extensions" 2026-09-20 15:33:33 +02:00
sidebar-preload.js feat(theseus/screenshot): 0.6.1 — text tool fix, category wrap, sidebar close X 2026-09-09 10:55:21 +02:00
test-installer.wsb chore: push-split helper for per-project forge repos + Windows Sandbox installer config 2026-09-09 10:33:23 +02:00

Theseus Navigator

The browser — the consumer face of the stack. Native .bch support with the resolver built in, so a user installs one app instead of modifying their operating system. Named for the thread through the labyrinth: the chain is the thread.

Scope

  • Electron shell (Chromium engine, no forking): tabs, address bar, history.
  • In-process .bch resolution — no system daemon, no NRPT, no OS trust-store changes; reuses bns.js from the BNS repo as a library.
  • Record handling: h render, ip connect, p/s3 via in-app gateway, u redirect.
  • TLS via cert-verify hook (Electron setCertificateVerifyProc) against the BNS root / on-chain tls fingerprints — no OS store touched.
  • Provenance indicator: shows whether a page came from the chain / Sia / a direct server, with NFT category and record type — the decentralized padlock.

Status: not started

Build it in its own session/repo. The ready-to-paste brief is BROWSER-PROMPT.md (a reference copy in this folder; canonical source is D:\Dev\NameCoin\BROWSER-PROMPT.md — if they diverge, NameCoin wins). It points here and reuses the resolver core. theseus.bch is registered and should eventually serve the browser's own homepage over the protocol it implements.

Roadmap

BUILD-ROADMAP.md Stage 5.