Fill the gaps that would have stalled or misled an implementation
session, and fold in the review's design changes:
- Front-load the decisions only the owner can make (npm scope, Gitea
host, private owner); fix license as UNLICENSED and Node at >=22.12
- Keep tsconfig.server.json, scoped to project code, instead of
promising to remove the standalone compile
- Externalize both packages in the SSR production build so the
monorepo runs the same artifact clients install; document the
expected dev-reload behavior per path
- Rebuild server-only protection in layers: package-level browser
export stub, app wrapper, lint rule, build-time Vite guard
- Ship @types/ws and @types/better-sqlite3 as core dependencies
- Make humanoid's dependency on core type-only; add no logging to it
- Add createRealtimeRuntime so server.js and the Vite plugin become
thin composition roots and wiring changes ship in core releases
- Caret ranges with a short 0.x window; intra-workspace ranges must
resolve locally, enforced by CI installing without credentials
- Add Gitea Actions verify and tag-driven publish workflows
- Move the SvelteKit shell first, then extract; put the avatar model
in Git LFS before the first push
- Describe how a client project starts from the template, and verify
an out-of-workspace copy against the packed tarballs
- Smaller corrections: env/data placement, ignore patterns, launch
config, array-form tsconfig extends, per-package check/build
tsconfigs and vitest configs, ESM-only statement
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Replaces the GitHub Packages assumption with the self-hosted Gitea
instance this repo actually runs on: registry URL pattern, owner-vs-repo
scoping, auth token requirements, and that packages need no advance
provisioning (Gitea creates them on first publish).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>