Files
my-pi/pi-extension-codex-fast-mode/DEVELOPMENT.md
T

2.1 KiB

Development guide: Codex Fast Mode for Pi

Contributor implementation and validation notes for the locally maintained fork.

Back to README · Technical reference · Upstream provenance

Validation

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 before porting later upstream work.