Files
sync_replay_project/AGENTS.md
T
foxyzandClaude Opus 5.5 81cac1214d Server on an isolate, dedicated server binary, room -> server (proto 5)
- 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>
2026-10-07 00:55:14 +03:00

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.protoVersion and 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).