Skip to content

statusline state split-brain: hard-coded CLAUDE_DATA_DIR diverges from host #388

Description

@lroolle

Description

deva.sh hard-codes CLAUDE_DATA_DIR/CLAUDE_CACHE_DIR into every container, splitting statusline quota state from the host and from the statusline default.

Type

  • Bug fix

Details

deva.sh:3456-3457 inject:

CLAUDE_DATA_DIR=/home/deva/.config/deva/claude
CLAUDE_CACHE_DIR=/home/deva/.cache/deva/claude/sessions

Problems observed in live use:

  • Containers write quota state to ~/.config/deva/claude while anything running without deva env (host Claude Code, manual runs) writes ~/.claude/statusline. Two parallel usage caches that never see each other; cross-session 5h/7d freshness breaks.
  • DEBUG_LOG is not redirected, so logs land in ~/.claude/statusline/logs while data lands in ~/.config/deva/claude: logs and data split, debugging misleads.
  • The env is set unconditionally but the ~/.config/deva mount is skipped under --config-home/-Q, leaving state container-ephemeral in those modes.

Fix: drop the two -e lines. statusline defaults to ~/.claude/statusline, which is already the mounted shared ~/.claude — one state dir for host and all containers, data and logs together. The ~/.config/deva mounts stay (auth files etc).

Related Files

  • deva.sh

Test Plan

  • launch container, run statusline render, confirm usage.cache written under ~/.claude/statusline
  • confirm no CLAUDE_DATA_DIR/CLAUDE_CACHE_DIR in container env
  • confirm auth credentials-file mode still mounts from ~/.config/deva/claude

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions