Skip to content
Merged
Show file tree
Hide file tree
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
55 changes: 0 additions & 55 deletions .github/workflows/port-contract.yml

This file was deleted.

114 changes: 0 additions & 114 deletions .github/workflows/rust-clippy.yml

This file was deleted.

32 changes: 0 additions & 32 deletions .github/workflows/typecheck-client.yml

This file was deleted.

17 changes: 10 additions & 7 deletions port/contract/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,16 @@ The contract regenerates only when the **authoring** source
npm run contract:generate # tsx port/contract/generate-ws-contract.ts
```

Run the drift guard with `npm run test:port`. CI runs it on every PR via
`.github/workflows/port-contract.yml`, which also regenerates the contract
(`npm run contract:generate`) and fails on any resulting diff, and runs
`cargo test -p freshell-protocol` so the Rust T0 surface moves in lockstep.
When you change `shared/ws-protocol.ts`: run `npm run contract:generate`,
update `crates/freshell-protocol` (arrays + inventory-test counts), and
commit the regenerated `port/contract/*.json` in the same PR.
Run the drift guard with `npm run test:port`. The local default suite
(`npm test`) also runs it on every local test run, so the TS side of the
contract is checked before every PR. The drift guard regenerates the contract
in-memory and asserts byte-equality with the committed files, subsuming the
`npm run contract:generate` idempotency check. Run
`cargo test -p freshell-protocol` separately to verify the Rust T0 surface
moves in lockstep. When you change `shared/ws-protocol.ts`: run
`npm run contract:generate`, update `crates/freshell-protocol` (arrays +
inventory-test counts), and commit the regenerated `port/contract/*.json` in
the same PR.

## How it is generated

Expand Down