noEmit`
- `npm run lint` — eslint (the copy-in `components/` are ignored on purpose)
- `npm test` — the reducer's golden-turn test; run it whenever the event mapping changes
## Conventions
- Name
serves `web/dist` if present.
- `npm run typecheck` covers both workspaces. There are no tests. Verify changes by running the app.
## Design notes
- `package.json` pins one `rxjs` version via `overrides
environment.yaml`'s allowlist does not apply to them.
5. **Keep the deployment paused while testing** (`agents/setup.sh` pauses it on creation; manual runs work while paused). `scripts/reset-state.sh` empties the state store
runbook:
setup, deploy, register the `session.status_run_started` webhook in the
Console, test. Their environment key and webhook secret go in the provider's
own secret store, never
mode
pnpm dev
# Run linting
pnpm lint
# Run type checking
pnpm check-types
# Run tests
pnpm test
# Format code
pnpm format
# Clean build artifacts
pnpm clean
# Full clean build
pnpm
exceeds ~80 lines
- Naming: `New()` for constructors, `Get/Set` for accessors, avoid stuttering (`feishu.FeishuPlatform` → `feishu.Platform`)
## Testing
### Requirements
- All new features must include unit tests
- All bug fixes should include a regression
request/ingestion/search paths,
the invariants that hold); read [DEVELOPER.md](DEVELOPER.md) for **how to build, test, and add an entity
or connector** (deep dives + end-to-end checklists). Consult [docs/index.md](docs/index.md
Lines that no longer apply must be removed.
- `tests/async/`, `tests/sync/` — pytest suites. Most new tests are added to the async file with a sync mirror.
- `DRIVER_VERSION` — the single source
phases done; remaining cosmetic items listed there).
## Essential Commands
```bash
# REQUIRED before running tests or CLI (src/ layout)
pip install -e .
# Run all tests (NEVER skip - all must pass before
command to make sure that there are no style issue.
* Always add tests when adding new features, and always make sure that all test cases can pass before committing
Electron (via scripts/dev.js)
npm run check # Type-check both tsconfig.json and tsconfig.node.json
npm run test # Vitest run (single run)
npm run test:watch # Vitest watch mode
```
## Repository Structure
- `docs/` — VitePress
make codegen`, which re-fetches them before generating.
Create or update tests covering affected codepaths and run them using `pnpm run test`.
Generate a changeset with `pnpm changeset
pyproject.toml
- **Use venv_linux** (the virtual environment) whenever executing Python commands, including for unit tests.
### Project Architecture
Follow strict vertical slice architecture with tests living next to the code they
PLANNING.md`.
- **Use venv_linux** (the virtual environment) whenever executing Python commands, including for unit tests.
### 🧱 Code Structure & Modularity
- **Never create a file longer than 500 lines of code
A file Claude Code reads at the start of every session. It holds the commands, conventions and warnings the agent needs for this project.
Where does it go?
At the repository root. Claude Code also reads CLAUDE.md files in subdirectories when it works there.
What should it contain?
Build and test commands, the project's layout, conventions that aren't obvious from the code, and mistakes to avoid. Short files tend to work better than long ones.
CLAUDE.md or AGENTS.md?
Claude Code reads CLAUDE.md; most other agents read AGENTS.md. Many projects keep one and point the other at it.