Skip to content
claudewheel.state
Edit
On this page

State persistence for claudewheel.

#claudewheel.state

#claudewheel.state

Persist launch state (selections, counts, recent dirs) and project inodes.

#project_key

python
def project_key(directory: str) -> str

Return the canonical per-project state key for directory.

This is THE rule for keying per-project state: the symlink-resolved (os.path.realpath) absolute path. A symlink and its target, and a relative path and its absolute form, all map to the same key so per-project state is never split across aliases of the same directory.

#_get_project_value

python
def _get_project_value(sf: 'StateFile', top_key: str, directory: str, default: Any=None) -> Any

Read a per-project sub-value from the top_key mapping in state.json.

#_set_project_value

python
def _set_project_value(sf: 'StateFile', top_key: str, directory: str, value: Any) -> None

Write a per-project sub-value under top_key, via set_value (single-key, multi-session-safe read-modify-write of the top-level key).

#get_project_hook_approvals

python
def get_project_hook_approvals(sf: 'StateFile', directory: str, default: Any=None) -> Any

Read the hook-approval record for directory (canonical key).

#set_project_hook_approvals

python
def set_project_hook_approvals(sf: 'StateFile', directory: str, value: Any) -> None

Persist the hook-approval record for directory (canonical key).

#get_vanilla_guardrails_opt_in

python
def get_vanilla_guardrails_opt_in(sf: 'StateFile', default: Any=None) -> Any

Read the machine-global vanilla-guardrails opt-in tri-state from state.

A leftover per-project dict value (from the old, superseded per-project shape) is not a valid answer -- it reads as unset (default).

#set_vanilla_guardrails_opt_in

python
def set_vanilla_guardrails_opt_in(sf: 'StateFile', value: Any) -> None

Persist the machine-global vanilla-guardrails opt-in tri-state to state.

#get_scratchpad_snooze_until

python
def get_scratchpad_snooze_until(sf: 'StateFile', default: Any=None) -> Any

Read the scratchpad-cleanup snooze deadline (ISO-8601 string) from state.

#set_scratchpad_snooze_until

python
def set_scratchpad_snooze_until(sf: 'StateFile', value: str) -> None

Persist the scratchpad-cleanup snooze deadline (ISO-8601 string).

#save_launch_state

python
def save_launch_state(cfg: 'AppConfigStore', selections: dict[str, str | None]) -> None

Save current selections to state.json before launch.

#record_inode

python
def record_inode(shared: 'SharedStore', directory: str) -> None

Record the inode of a project directory for rename detection.

More tools from this site

  • claudestream Drive Claude Code from Python: run it as a subprocess and read its output as typed events, with async and sync sessions, sandbox policies, and tools you define in Python
  • dirstat Fast, single-binary directory statistics CLI: every file under a tree grouped by format, with counts, sizes, and lines of code, as a colored terminal table or as JSON
  • fastware A batteries-included ASGI framework: msgspec JSON, a managed Granian server, dependency injection, SSE, WebSockets, auth, and a test client
  • go-toml-edit Zero-dep TOML editing library for Go with comment preservation
  • howmuchleft The fastest Claude Code statusline: context window, 5-hour, and weekly limit usage as three customizable gradient bars, rendering in about 6 ms
  • orxtra
  • pgdesign
  • predraw Declarative rendering pipeline: describe a scene in JSON and get SVG, PNG and WebP out, with light and dark style tokens, reusable components and text converted to path outlines
  • reposummary Turn a git repository's history into a Markdown journal: pick a time window or revision range and get a readable digest of what changed, optionally narrated by an LLM
  • rlsbl Release orchestration and project scaffolding CLI that bumps versions, validates a structured JSONL changelog, tags only the commit CI verified, and publishes to npm, PyPI, Go and more
  • safegit git wrapper CLI that gives each commit its own temporary index and retries ref updates on conflict, so concurrent agents share one repository
  • saferm Command-line replacement for rm that archives every deletion with a mandatory reason and the context it ran in, so deleted files can be listed, inspected and restored
  • selfdoc Static Site Generator that builds a project's documentation site directly from its source code, so the docs can never drift from the code they describe, with SEO/AEO, first-class blog, search, and cross-project linking built in
  • strictcli
  • stricttest An always-on test-isolation floor: a pytest plugin and a Go env-hygiene module that make a test suite structurally unable to reach real credentials, the real HOME, the network, or the development repository.
  • wesktop A Python framework that turns an ASGI web app into a desktop application, serving it from a local Granian server and displaying it in a native OS window via pywebview
Search