Skip to content

Review pass: SDK conformity, credential + relay UX, docs, i18n#2

Merged
MattDHill merged 1 commit into
mainfrom
audit-pass
Jun 20, 2026
Merged

Review pass: SDK conformity, credential + relay UX, docs, i18n#2
MattDHill merged 1 commit into
mainfrom
audit-pass

Conversation

@helix-nine

@helix-nine helix-nine commented Jun 20, 2026

Copy link
Copy Markdown

Summary

Audit and update of the community-contributed keep-startos (Keep — an always-on FROST threshold co-signer) against start-docs/packaging and the start9-registry packages, ahead of Community Registry listing.

Rebased onto main @ keep 0.4.8 (PR #1 landed while this was in flight). Package version is now 0.4.8:0, and the relay default is reconciled to upstream's coracle choice (see Relays).

Verified end-to-end on a dev StartOS box (keep-web 0.4.8 built from source): installs, runs healthy; the credential task, password set/rotate, Configure form, and coracle relay default all work; i18n resolves per locale.

Conformity

  • Versions → collapsed the per-version files (0.4.0–0.4.8, none carrying a migration) into a single conformant current.ts at 0.4.8:0 with other: [], per the "latest lives in current.ts" rule. Intermediate release notes remain in git history; current.ts uses an "initial StartOS listing" note — happy to swap in the 0.4.8 changelog if preferred.
  • Added missing boilerplate AGENTS.md, CLAUDE.md, TODO.md; synced s9pk.mk, .gitignore, .dockerignore, CONTRIBUTING.md to canon.
  • CI: added tagAndRelease.yml; enabled FREE_DISK_SPACE in release.yml.
  • Renumbered the i18n dictionary to close a stale index gap.

Credentials — fix an anti-pattern

Replaced the generate-in-init + Show Login Credentials reveal pattern with recipe-admin-credentials: a setupOnInit watcher raises a critical task only while the token is unset, pointing at one Set Web Admin Password action (generate → store → return; first-set and rotation). The vault password stays an internal secret. Removed credentials.ts and actions/showLoginCredentials.ts.

Relays — reconciled with upstream 0.4.8

keep-web's bunker hard-requires ≥1 relay (require_relay_urls → crashes the co-signer on empty). My branch originally seeded keep-core 0.4.0's 4-relay set — but keep 0.4.8 changed default_frost_relays to a single wss://bucket.coracle.social, because general-purpose relays (nos.lol, damus, …) drop the rapid ephemeral kind-24242 events FROST needs, stalling signing rounds. I reconciled to coracle (the 4-set would have been a regression) and kept the hardening: require ≥1 relay (the form previously allowed empty → a deferred crash once a share is imported), cap at 10 / 256-char URLs, tighten the wss:// pattern, and fall back to the default in main.ts. Adding relays for redundancy is the Configure action's job (upstream's own guidance).

Multi-group (0.4.6)

Folded the new active-group / no-crash semantics into instructions.md and README.md: KEEP_FROST_GROUP is an optional pin; with shares for multiple groups the co-signer auto-selects one and you switch the active group in the Web Admin's Shares section.

Docs & i18n

  • Rewrote README.md and instructions.md to the writing-readmes / writing-instructions conventions; synced UPDATING.md.
  • Translated all dictionary strings and the release notes into es_ES, de_DE, pl_PL, fr_FR (protocol terms kept verbatim).

Notes for review

  • packageRepo left as privkeyio/keep-startos (author's repo) — matches the README/CONTRIBUTING clone URLs and the stash-startos precedent. Easy to switch to Start9-Community/keep-startos if that's the policy.
  • Version-file collapse — if any of 0.4.1–0.4.8 were actually released and need upgrade edges, say so and I'll restore the relevant other entries.
  • x86_64 only — consistent across manifest / Makefile / Dockerfile.

🤖 Generated with Claude Code

Audit and update of the community-contributed keep-startos against
start-docs/packaging and the start9-registry packages.

Conformity:
- Rename the version file to current.ts (export `current`); keep version 0.4.0:0.
- Add AGENTS.md, CLAUDE.md, TODO.md; sync s9pk.mk, .gitignore, .dockerignore,
  CONTRIBUTING.md to the registry canon.
- Add tagAndRelease.yml; enable FREE_DISK_SPACE in release.yml (source build).
- Renumber the i18n dictionary to close a stale index gap.

Credentials (recipe-admin-credentials):
- Drop the generate-in-init + "Show Login Credentials" reveal anti-pattern.
  A setupOnInit watcher now raises a critical task pointing at one
  Set Web Admin Password action that generates, stores, and returns the token
  (first-set and rotation). The vault password stays an internal secret.
  Remove credentials.ts and actions/showLoginCredentials.ts.

Relays:
- Seed upstream keep-core's canonical default relay set instead of a single
  relay. keep-web's bunker crashes with zero relays, so require >=1 (max 10,
  256-char URLs), tighten the wss:// pattern, and fall back to the default set
  in main.ts.

Docs:
- Rewrite README.md and instructions.md to the writing-readmes /
  writing-instructions conventions; sync UPDATING.md.

i18n:
- Translate all dictionary strings and the release notes into es_ES, de_DE,
  pl_PL, fr_FR.

Verified on a dev StartOS box: builds, installs, runs healthy; the credential
task, password set/rotate, and Configure form work; i18n resolves per locale.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@MattDHill MattDHill merged commit eb7aaed into main Jun 20, 2026
1 check passed
@MattDHill MattDHill deleted the audit-pass branch June 20, 2026 21:26
@helix-nine

Copy link
Copy Markdown
Author

Thanks for the review and merge, @MattDHill! 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants