- serve(Map config, events) is the one server entrypoint: the app hosts it via Isolate.spawn (crash surfaced on the Host card, logs forwarded as [server]); bin/server.dart is the dedicated server, compiled into the bundle as watch-together-server. --headless gone. - Host identity via a per-hosting hostKey in hello, replacing the loopback heuristic. - Rename room -> server across code, files and wire (t:"state", /health name); protocol bumped to 5. - CI compiles the server binary; isolate smoke tests in server and desktop suites. Docs updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.8 KiB
AGENTS.md
Repo-specific rules. Global interaction rules live in the user-level AGENTS.md. Source of truth: the code, then the docs below.
Docs
- README.md: users. docs/HOW-IT-WORKS.md: plain tour. docs/ARCHITECTURE.md: packages, sync, media, updater, decisions. docs/PROTOCOL.md: wire format. docs/DEVELOPMENT.md: build, test, release, gotchas. docs/ROADMAP.md: backlog and epics.
- Docs describe current truth only: no dates, no "fixed" notes, no phase logs (git has history, plans go in ROADMAP).
- Each fact lives in exactly one file; others link to it.
- Code and its docs change in the same commit. A wire change also bumps
RelayConstants.protoVersionand edits PROTOCOL.md. - Say "server" (there is only one), never "room", in UI, code and docs.
Wishlist drafts
The user drops raw idea/bug lists as drafts (gitignored, never committed:
docs/Wishlist.md, docs/drafts/). On sight, translate each entry into its
place in docs/ROADMAP.md (ordered backlog item or epic; keep repro detail
for real bugs), confirm placement with the user, then delete the draft.
Drafts must never be committed, even partially.
Commits
Few commits, one per topic/session, never per fix. Rewriting unpushed
history (amend, squash) is normal. Commit code + its docs together. No
flutter analyze unless asked or diagnosing; scoped dart analyze on touched
files is the pre-commit check. Run tests only when the code under test changed.
Releases
tool/release.sh [patch|minor|major] then git push --follow-tags; CI
publishes. Details: docs/DEVELOPMENT.md. Never commit
secrets: tokens come from env (DISCORD_WEBHOOK_URL, RELEASE_TOKEN) or
Actions (GITHUB_TOKEN/GITEA_TOKEN).