Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Miranda — agent notes

Browser → blind relay → agent terminal, passkey-authenticated, E2E encrypted.
(Project: **Miranda**. Binaries: `mir` client, `mir-agent`, `mir-signal` relay.
Go module path stays `github.com/srcful/terminal-relay/go` — internal, not the
brand. See `docs/naming.md`.)

## Invariants (do not break)
- The relay never sees plaintext. Only `owner_id`, `machine_id`, metadata.
- Go and JS crypto MUST stay byte-identical — `testdata/` vectors are the gate.
After changing any handshake/derivation code, run `cd go && go test ./...` and
`cd web && npm test`; if vectors legitimately change, regenerate with
`UPDATE_VECTORS=1 go test ./internal/noise/ -run TestInteropVectorsStable`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Broaden vector regeneration guidance

For changes to pairing or owner-identity derivation, this command only regenerates the Noise KK and legacy owner vectors from go/internal/noise/interop_test.go; other byte-compatibility fixtures are generated by separate tests such as go/internal/pairing/interop_test.go::TestPairInteropVectorsStable and go/internal/identity/signer_test.go::TestIdentityDerivationVector. If an agent follows this AGENTS.md instruction after a legitimate change in those areas, it will leave stale testdata and break the Go/JS parity tests, so this should either list the relevant vector update commands or describe running the package-specific generator for the code being changed.

Useful? React with 👍 / 👎.

- Owner identity derives from the passkey `prf` output; never store the owner
private key — re-derive it per device.

## Layout
- `go/` — `mir-agent`, `mir-signal`, the `mir` client, shared `internal/` packages.
- `web/` — browser client (vanilla JS + xterm.js).
- `docs/superpowers/{specs,plans}/` — design + plans.
Loading