remora v0.1.9 - coralline usage-state isolation
coralline usage-state isolation
remora v0.1.9 prevents GPT gateway usage data from leaking into coralline's native Claude rate-limit and burn segments.
A remora child uses the host's Claude Code status line, but its rate_limits values belong to the configured GPT gateway account rather than the host's native Anthropic login. When coralline cross-session sync was enabled, both environments previously shared the same high-water and burn stores. A gateway percentage could therefore pin the native 5-hour or 7-day segment, and gateway samples could distort the native burn ETA and slope.
What changed
| Area | Behavior |
|---|---|
| 5-hour and 7-day limits | CORALLINE_RL5H_FILE and CORALLINE_RL7D_FILE now point at gateway-scoped stores. |
| Burn estimator | CORALLINE_BURN_FILE is isolated with the limit stores, so gateway samples cannot affect the native burn slope or ETA. |
| Gateway identity | Store directories use a bounded readable host prefix plus a hash of the full gateway URL. Scheme, host, port, and path all participate, so path-routed accounts remain separate without exceeding filesystem component limits. |
| User config | A generated wrapper preserves the original CORALLINE_CONFIG and VL_CONF identity while loading the user's config, then reapplies only the scoped store paths. Existing options, sibling-file lookups, and deferred helpers retain native semantics. |
| Native Claude isolation | Runtime files live under ${XDG_STATE_HOME:-$HOME/.local/state}/remora-cc/coralline/. remora does not write these files into ~/.claude. |
| Uninstall | Default uninstall removes the known coralline runtime subtree while preserving config.toml, including when XDG state and config homes point at the same directory. |
| Diagnostics | remora dry-run shows the generated wrapper and all scoped coralline paths. |
This patch does not change model routing, agent roles, gateway authentication, context-window policy, or the phase-aware orchestration lifecycle introduced in v0.1.8.
Verification
- 38 Python tests passed.
- Installer and offline bootstrap tests passed.
- A real launcher-to-fake-Claude test verified that the native
~/.claudemanifest and settings checksum remain unchanged. - Normal and aliased-XDG uninstall cleanup passed.
- Python and shell syntax checks passed.
- Agent rendering and sanitized dry-run checks passed.
- The v0.1.9 release archive and checksum were built locally.
- Codex reviewed PR #3 and gave a clean pass.
Upgrade
Use the pinned, approval-gated v0.1.9 runbook:
Read and follow this installation runbook:
https://raw.githubusercontent.com/Nanako0129/remora-cc/v0.1.9/install/AGENT-INSTALL.md
Perform only the read-only preflight first. Show every proposed filesystem
change, trust boundary, download source, and verification step. Do not write
anything until I explicitly approve.
After upgrading, start a fresh remora session. Existing remora processes keep the child environment captured when they launched.
Full Changelog: v0.1.8...v0.1.9