Skip to content

config/state split: agent homes do not belong in ~/.config/deva #518

Description

@lroolle

Description

~/.config/deva/<agent> doubles as agent home (default_config_home_for_agent, deva.sh:381) while deva.sh:4141 blanket-mounts ~/.config/deva into every container. Same host files end up visible at two container paths. Agent homes are state, not config.

Type

  • Enhancement

Details

Today both mechanisms fire at once: config-root mode rehomes ~/.config/deva/claude/.claude to container $HOME/.claude, and the blanket mount exposes the same files under ~/.config/deva/claude/ inside the container. Agent writes through one alias, tools read the other. It also makes ~/.config/deva impossible to treat as pure deva config for wholesale mounting.

Proposed contract:

Migration: accept the old layout one release with a deprecation warning, then drop. Settle this before the bun port hardens the current layout.

Related Files

  • deva.sh (default_config_home_for_agent, resolve_config_base, blanket mount at 4141)
  • docs, README

Test Plan

  • scripts/test-mount-shape.sh: no target mounted twice under any config mode
  • old layout triggers deprecation warning, still works for one release
  • new layout resolves agent home from ~/.local/share/deva/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions