mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-08-28 16:45:22 +00:00
37 lines
2.1 KiB
Markdown
37 lines
2.1 KiB
Markdown
# Development guide: Codex Fast Mode for Pi
|
|
|
|
Contributor implementation and validation notes for the locally maintained fork.
|
|
|
|
[Back to README](README.md) · [Technical reference](TECHNICAL.md) · [Upstream provenance](UPSTREAM.md)
|
|
|
|
## Validation
|
|
|
|
```bash
|
|
npm test
|
|
npm run check
|
|
npm run smoke
|
|
npm pack --dry-run --json
|
|
```
|
|
|
|
Tests cover command grammar and completions, branch restoration, cross-session defaults, owner-only atomic config writes, invalid-config fallback, persistence failures, busy mutation guards, status publication, exact provider/API isolation, malformed payload passthrough, non-mutation, and tier overwrite. They make no authenticated or paid model requests.
|
|
|
|
## State model
|
|
|
|
The effective state is resolved in this order:
|
|
|
|
1. Read the global default from `<agentDir>/extensions/pi-extension-codex-fast-mode/config.json`; missing or invalid data defaults to off.
|
|
2. Reconstruct the latest valid `codex-fast-mode` custom entry on the active session branch.
|
|
3. Use the branch entry when present; otherwise use the global default.
|
|
|
|
A successful mode command appends a session entry when the branch value changes and atomically writes the global default even when the branch already has the requested value. This allows an explicit `/fast-mode on` or `/fast-mode off` to repair or recreate global configuration.
|
|
|
|
If the global write fails, the branch state still changes and the user receives a warning. Concurrent Pi processes use atomic replacement; the last successful command determines the default for future sessions.
|
|
|
|
## Request isolation
|
|
|
|
When enabled, the extension shallow-copies only a plain serialized payload whose provider is exactly `openai-codex` and API is exactly `openai-codex-responses`, then writes `service_tier: "priority"`. It preserves all other top-level fields and does not mutate the original payload.
|
|
|
|
## Maintenance
|
|
|
|
This directory is maintained directly in `my-pi`, is not a submodule, and must not acquire a nested `.git`, `node_modules`, or generated build output. Compare local changes with the snapshot recorded in [UPSTREAM.md](UPSTREAM.md) before porting later upstream work.
|