You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: seal in the browser — the owner journey is now terminal-free (EF-ISS-7)
Creating and maintaining a register were already terminal-free; sealing a
new one was the last wall. scripts/edit.sh now runs the whole create flow
through the local editor server: fill the form, Save (writes estate.yaml
to the folder, no Downloads shuffle), then Seal my file — the server runs
the proven scripts/setup.sh in a new machine-emit mode (EXECUTOR_FILE_EMIT)
and the browser walks the ceremony (shares one at a time, confirm and
clear, passphrase, checklist), all on 127.0.0.1.
- setup.sh: EXECUTOR_FILE_EMIT emits the proof-verified secrets as a
parseable block and skips the human display; normal setup.sh unchanged.
- edit-server.py: --mode create|review; create-mode save keeps the server
up; new GET /validate and POST /seal (localhost only; secrets never
written to disk beyond the .age; /seal reuses setup.sh, no crypto
reimplemented).
- editor.html: create titling, a Seal button, and an in-browser ceremony.
- edit.sh: launches the editor in create mode via the server (falls back
to the static download editor when python3 is absent).
- SECURITY.md: states the localhost trust boundary of the browser seal
honestly (secrets cross 127.0.0.1 and show in the tab; same boundary as
the terminal ceremony; terminal path remains for the smallest surface).
Security-critical test added: drive create -> save -> seal through the
server and assert the returned shares reconstruct the returned passphrase
on a setup.sh-proof-verified file. Suite 116 green batchpass / 114 expect,
both mechanisms; review.sh's terminal + browser paths unaffected.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| EF-ISS-7 | Sealing a NEW register still needs a Terminal command (scripts/setup.sh): creating and maintaining register content are now terminal-free (browser editor + review-in-browser), but the first encrypt+split+prove-chain step isn't. Last terminal wall for a non-technical owner — consider a guided seal (double-click launcher wrapping setup.sh) or an editor 'seal' action shelling out to age/ssss locally. | Open | medium | — | pending |
20
19
| EF-ISS-5 | Register editor + schema help is thin on jurisdiction for cross-border users: editor v1 has no domicile/residence fields (schema supports them), and the 'jurisdictions' help doesn't explain it means every place you hold assets, nor domicile vs residence, nor 'if UK/US/FR-style cross-border, see a specialist solicitor'. Real UAT case: UK citizen, NY resident on E-2, assets in UK/US/FR — user could not tell what to enter. | Open | medium | — | pending |
21
20
| EF-ISS-3 | Onboarding requires holding instructions across multiple pages — violates the product's own 'you don't have to hold it in your head' principle; non-technical owners should be funnelled to executorfile.com/get-started, not raw GitHub | Open | high | — | pending |
22
21
| EF-ISS-2 | GitHub release page is a dead-end for non-technical users: no 'download this / do this next', assets collapsed under Assets, and competing with GitHub's auto Source-code downloads; install instructions are stranded back on the README (can't be recalled on the release page) | Open | high | — | pending |
@@ -25,6 +24,7 @@ ID or another repo's. Raise issues here with `python3 ~/shared/scripts/repo-issu
25
24
26
25
| ID | Title | Status | Commit | Detail |
27
26
|----|-------|--------|--------|--------|
27
+
| EF-ISS-7 | Sealing a NEW register still needs a Terminal command (scripts/setup.sh): creating and maintaining register content are now terminal-free (browser editor + review-in-browser), but the first encrypt+split+prove-chain step isn't. Last terminal wall for a non-technical owner — consider a guided seal (double-click launcher wrapping setup.sh) or an editor 'seal' action shelling out to age/ssss locally. | Done | browser seal | scripts/edit.sh now creates AND seals in the browser: fill the form, Save, Seal, and an in-browser ceremony writes down the shares. edit-server.py gained mode-aware save + /validate + /seal (runs setup.sh in EXECUTOR_FILE_EMIT mode, reusing the proven crypto). Owner journey is now terminal-free after launch; setup.sh remains the terminal path. |
28
28
| EF-ISS-6 | Yearly-review (maintenance) still hits the terminal wall: browser editor only handles plaintext to Downloads, but the kept file is estate.yaml.age and must be re-encrypted with the SAME passphrase (shares stay valid) — review.sh still uses a terminal editor. Build 'review in the browser': review.sh decrypts to a temp file, opens it in a local-only editor that reads/writes that file directly, then re-encrypts+verifies+shreds. Also make the editor loader handle folded '>' block scalars so example-style/hand-authored files open too. | Done | 7ca3113, f769193 | review-in-browser (edit-server.py + editor server mode + review.sh browser default) and block-scalar loader shipped; yearly review no longer needs a terminal editor. |
29
29
| EF-ISS-4 | Editing the register in a terminal editor (nano) is a hard wall for non-technical owners: dry-run tester could not use nano, accidental ^V wrote junk, could not exit. This is the dry-run evidence the parked GUI/editing-interface decision (SPEC-v1 §9) was explicitly waiting for. Needs a humane edit path (GUI or form/web editor) before the tool is usable by its target audience. | Done | fcfabda, 7ca3113 | humane edit path shipped: browser form editor for creating (editor.html) and for maintaining (review-in-browser). The parked GUI decision (SPEC-v1 §9) is resolved. Remaining terminal step (sealing) tracked as EF-ISS-7. |
30
30
| EF-ISS-1 | README quickstart assumes the repo is already on disk: no download/unpack/cd step for tarball users | Done | 8887f5d | README 'Get the tool' section added: tarball download + unpack + cd, git clone alternative, terminal-opening, Homebrew fallback. |
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,7 +58,7 @@ cd executor-file
58
58
59
59
Either way you are now "in the folder" — every command below is typed into that same Terminal window, and the `scripts/...` paths will just work.
60
60
61
-
**Prefer not to hand-edit a text file?**Double-click **`Edit-Executor-File.command`** in the folder (or run `scripts/edit.sh`) to fill your register in as a form in your browser — dropdowns, plain-English help, no YAML. It runs entirely on your machine, saves `estate.yaml` to your Downloads, and you still seal it once with `scripts/setup.sh`.
61
+
**Prefer not to touch the Terminal at all?**Run `scripts/edit.sh` (once you are in the folder) to fill your register in as a form in your browser — dropdowns, plain-English help, no YAML — then click **Save** and **Seal my file**, and it encrypts the file, splits the key, and walks you through writing the shares down, all in the browser. It runs entirely on your machine; nothing is sent anywhere. The one-command Terminal path (`scripts/setup.sh`) below still works if you prefer it.
62
62
63
63
**Two small tools to install once** (these do the encryption and the share-splitting; both are free, open-source, and standard):
64
64
@@ -98,7 +98,7 @@ nano estate.yaml
98
98
scripts/validate.sh
99
99
```
100
100
101
-
**3. Seal it** — validate → encrypt → split → **prove the chain**, one command. It generates a strong passphrase, encrypts, splits the passphrase 2-of-3, then reconstructs it from two of the just-issued shares and test-decrypts back to a byte-identical copy before reporting success:
101
+
**3. Seal it** — validate → encrypt → split → **prove the chain**. If you built the register with `scripts/edit.sh`, you already sealed it there in the browser and can skip this. Otherwise, one command does it: it generates a strong passphrase, encrypts, splits the passphrase 2-of-3, then reconstructs it from two of the just-issued shares and test-decrypts back to a byte-identical copy before reporting success:
0 commit comments