move data home from ~/.claude/memory to ~/.consciousness

The consciousness project should stand independently of Claude Code.
All data, logs, sessions, and agent state now live under
~/.consciousness/ instead of being scattered across ~/.claude/memory/,
/tmp/claude-memory-search/, ~/.config/poc-memory/, and ~/.cache/.

Layout:
  ~/.consciousness/
    *.capnp, *.bin, *.rkyv  — store files
    sessions/               — per-session state (seen sets, cookies)
    logs/                   — all logs (hook, agent, debug, dream)
    agents/                 — agent runtime state (pid files, output)
    notifications/          — notification state
    cache/                  — transient data

Things that stay in ~/.claude/:
  - projects/    (Claude Code transcripts)
  - hooks/       (Claude Code hook system)
  - telegram/    (shared integration)
  - irc/         (shared integration)
  - settings.json (Claude Code settings)

Debug log moves from /tmp/ to ~/.consciousness/logs/debug.log.
Session state moves from /tmp/claude-memory-search/ to sessions/.
Notifications move from ~/.claude/notifications/ to notifications/.
This commit is contained in:
ProofOfConcept 2026-03-27 21:05:15 -04:00
parent 8ee0d90388
commit 6a1660cc9d
13 changed files with 35 additions and 28 deletions

View file

@ -528,7 +528,7 @@ impl State {
}
// Dream loop (externally managed)
if h.join(".claude/memory/dream-loop-active").exists() {
if h.join(".consciousness/agents/dream-loop-active").exists() {
return Ok(());
}
@ -602,7 +602,7 @@ impl State {
}
fn hours_since_last_dream() -> u64 {
let path = home().join(".claude/memory/dream-log.jsonl");
let path = home().join(".consciousness/logs/dream-log.jsonl");
let content = match fs::read_to_string(path) {
Ok(c) if !c.is_empty() => c,
_ => return 999,

View file

@ -45,7 +45,7 @@ pub enum Activity {
}
fn state_path() -> PathBuf {
home().join(".claude/notifications/state.json")
home().join(".consciousness/notifications/state.json")
}
#[derive(Debug, Clone, Serialize, Deserialize)]
@ -250,10 +250,10 @@ impl NotifyState {
out
}
/// Ingest notifications from legacy ~/.claude/notifications/ files.
/// Ingest notifications from legacy ~/.consciousness/notifications/ files.
/// Maps filename to notification type, assumes NORMAL urgency.
pub fn ingest_legacy_files(&mut self) {
let dir = home().join(".claude/notifications");
let dir = home().join(".consciousness/notifications");
let entries = match fs::read_dir(&dir) {
Ok(e) => e,
Err(_) => return,