diff --git a/docs/RUNNING.md b/docs/RUNNING.md index bbd246e..182520a 100644 --- a/docs/RUNNING.md +++ b/docs/RUNNING.md @@ -3,8 +3,8 @@ The console is the UI. The browser handles credential approvals, not chat. **TL;DR:** Use a separate v3 world and the release host. Keep its complete folder between starts. -The current Nix package does not assemble a complete default world. A fresh checkout is not yet a complete cutover path. -Resolve the bootstrap gaps below before production cutover. +The development bundle now seeds a complete source tree, including agents, skills, and extensions. +The Nix package does not yet supply that bundle. Verify the remaining cutover steps below before production use. The rest of the root README describes v2. ## Build and start @@ -30,10 +30,9 @@ nix develop -c nu userland/bundle.nu It builds the world commands and creates `target/userland/bundle` by default. It snapshots committed source, not uncommitted edits. -**Current gaps:** its source archive omits `agents/`, including `agents/models.json`. -It also includes a dangling esbuild symlink at `userland/esbuild/source/scripts/browser/esbuild.wasm.bagel`. -The world copier dereferences symlinks, so this source tree fails initial seeding with `No such file or directory`. -Do not treat the current bundle output as a verified startup path. +The source archive includes the complete `agents/`, `skills/`, and `extensions/` directories. +The world copier preserves symlinks, including dangling links in the source tree. +A fresh development world no longer needs a manual source copy. For a release host from the checkout: @@ -104,6 +103,7 @@ For direct VPN access, the default loopback listener is insufficient. You need a reachable listener, HTTPS termination, and matching RP ID and origin options. Plain HTTP on the VPN hostname does not provide the browser's secure context for passkeys. The SSH tunnel avoids that extra setup for localhost tests. +**To check with Surma:** the laptop tunnel, browser passkey registration, secret entry, and request approval. The planned production origin is `https://sausage.apps.surma.technology`, with RP ID `sausage.apps.surma.technology`. Passkeys registered for `localhost` do not transfer to that RP ID. Plan a separate production registration. Do not expose the listener before the first registration to people who must not approve requests. @@ -247,9 +247,9 @@ Source: [`host API contract`](../host/src/api/README.md), ## Known gaps before cutover - The Nix package wraps the host and builder tools but does not ship or select the default userland bundle. -- The bundle source archive omits `agents/`. A fresh bundle lacks model families and built-in agent definitions. -- The source archive includes a dangling esbuild symlink. The world copier cannot seed that tree. -- Fresh-world validation currently stops at that copy failure. The package start and full operational sequence remain unverified. +- The development bundle passes fresh-world startup checks. The Nix package start remains unverified until its bundle integration lands. +- Laptop access, passkey ceremonies, secret entry, and browser approval remain **to check with Surma**. +- Startup checks use fake proxy credentials. They do not verify a real model session or external credential injection. - A usable `llm-proxy` credential is mandatory even before the first chat. - The browser has approval, passkey, and secret-entry pages, but no item editor, dashboard, or chat UI. - The console has no shell commands, transcript navigation, or special quit command. @@ -257,4 +257,4 @@ Source: [`host API contract`](../host/src/api/README.md), - The flake's runtime-toolchain check and loop comments still describe v2 behavior. - This guide does not migrate a v2 world. Keep the live v2 folder untouched. -Do not treat a successful host compilation as evidence that these bootstrap gaps disappeared. +A successful development start does not verify the Nix package, external services, or the production passkey origin.