reflect-logs: distill session logs into topic memory (2026-07 sweep)
This commit is contained in:
18
memory/.reflection-state.json
Normal file
18
memory/.reflection-state.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"last_run": "2026-07-02T02:57:34Z",
|
||||||
|
"processed": {
|
||||||
|
"2026-04-12.002212.md": {
|
||||||
|
"md5": "7bc1c971149fdd04f528e432fd8a1e16",
|
||||||
|
"processed_at": "2026-07-02T02:57:34Z"
|
||||||
|
},
|
||||||
|
"2026-04-12.003747.md": {
|
||||||
|
"md5": "17fafffbfc6735c777b2fc71fdd463d2",
|
||||||
|
"processed_at": "2026-07-02T02:57:34Z"
|
||||||
|
},
|
||||||
|
"2026-04-24.075643.md": {
|
||||||
|
"md5": "894d58fc7e390bb6af39e71d5219cc3f",
|
||||||
|
"processed_at": "2026-07-02T02:57:34Z"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -79,3 +79,11 @@ Claude Code reads `ANTHROPIC_API_KEY` for its credential regardless of provider.
|
|||||||
## Decouple WezTerm theme name from profile name via `wezterm-theme` file
|
## Decouple WezTerm theme name from profile name via `wezterm-theme` file
|
||||||
|
|
||||||
Profile names changed (e.g. `oreillyit` → `oreillyit-anthropic`) but the WezTerm theme table still keys on the old short names. Each profile dir ships a one-line `wezterm-theme` file that maps the new profile name to the theme key, so WezTerm theme emission can fire immediately after profile selection without renaming themes.
|
Profile names changed (e.g. `oreillyit` → `oreillyit-anthropic`) but the WezTerm theme table still keys on the old short names. Each profile dir ships a one-line `wezterm-theme` file that maps the new profile name to the theme key, so WezTerm theme emission can fire immediately after profile selection without renaming themes.
|
||||||
|
|
||||||
|
## Driver→model_id mapping and context-window facts
|
||||||
|
|
||||||
|
Reference facts baked into `claude-profile`: `haiku → claude-haiku-4-5-20251001`, `sonnet → claude-sonnet-4-6`, `opus → claude-opus-4-6`, `opus-1m → claude-opus-4-6[1m]`. Sonnet 4.6 has a fixed 200k context window with no extended-context option; `opus-1m` denotes Opus running with the 1M-token window. <!-- STALE? Model IDs will age out as new model versions ship; verify against live model list before relying on these. -->
|
||||||
|
|
||||||
|
## claude-profile state files live under `$CLAUDE_CONFIG_DIR`
|
||||||
|
|
||||||
|
`active-mode.env` (current mode/driver), `last-mode` (picker default, falls back to `quick`), and `presets.yaml` (per-profile) all live under `$CLAUDE_CONFIG_DIR`. The path is stable across `/clear`, so `active-mode.env` survives and is read by both the CLAUDE.md session-start (project auto-select) and `statusline.sh`. Known v1 limitation: parallel sessions against the same profile race on `active-mode.env` (last writer wins).
|
||||||
|
|||||||
19
memory/log/2026-04-24.075643.md
Normal file
19
memory/log/2026-04-24.075643.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Session Log -- 2026-04-24
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
Simplified claude-profile by removing the provider selection phase and time horizon question. Provider config now embedded in profile directories via `provider.env`. Also moved WezTerm theme emission to fire immediately after profile selection.
|
||||||
|
|
||||||
|
## Decisions
|
||||||
|
- Decision: Embed provider config in profiles via `provider.env` rather than shared YAML files -- Rationale: profiles are already the natural isolation boundary; different providers = different profiles. Eliminates an entire interactive phase.
|
||||||
|
- Decision: Hardcode Anthropic driver→model_id mapping, use `provider.env` only for non-Anthropic -- Rationale: Anthropic is the default path and needs zero config. Only non-standard providers need extra config.
|
||||||
|
- Decision: Decouple WezTerm theme name from profile name via `wezterm-theme` file -- Rationale: profile names changed (e.g., `oreillyit` → `oreillyit-anthropic`) but WezTerm theme table still uses old names. One-line file in profile dir maps the new name to the theme key.
|
||||||
|
- Decision: Always use `ANTHROPIC_API_KEY` as the env var for non-Anthropic provider keys -- Rationale: Claude Code reads this env var; simplifies provider.env to not need a configurable key name.
|
||||||
|
|
||||||
|
## Gotchas Discovered
|
||||||
|
- **[claude-profile]** Symptom: `CLAUDE_TIME_HORIZON` was asked interactively and written to `active-mode.env` but never consumed by any downstream tool -- Fix: removed entirely (dead code)
|
||||||
|
- **[claude-profile]** Symptom: `CLAUDE_PROVIDER` in `active-mode.env` was only read by the statusline for non-Anthropic short-name display -- Fix: removed from both; provider distinction is now at the profile level
|
||||||
|
|
||||||
|
## Key Context
|
||||||
|
- 41 dryrun tests pass after all changes
|
||||||
|
- Files outside the repo were also updated: `~/.claude/status/statusline.sh` (removed CLAUDE_PROVIDER parsing), `~/.claude-*/wezterm-theme` files created, `~/.claude-oreillyit-minimax/provider.env` created
|
||||||
|
- The `custom-claude-skills/skills/switch-mode/SKILL.md` was updated to remove CLAUDE_PROVIDER and CLAUDE_TIME_HORIZON from its active-mode.env template
|
||||||
@@ -39,3 +39,11 @@ The Edit tool tracks which files have been explicitly read via the Read tool —
|
|||||||
## `/context` "Memory files" aggregates two distinct systems
|
## `/context` "Memory files" aggregates two distinct systems
|
||||||
|
|
||||||
The "Memory files" category reported by `/context` combines project `CLAUDE.md` instructions and auto-memory `MEMORY.md`. They have different purposes (project conventions vs cross-session learnings) and live in different places. When auditing context size, check both rather than assuming a single source.
|
The "Memory files" category reported by `/context` combines project `CLAUDE.md` instructions and auto-memory `MEMORY.md`. They have different purposes (project conventions vs cross-session learnings) and live in different places. When auditing context size, check both rather than assuming a single source.
|
||||||
|
|
||||||
|
## Grep all consumers before removing or keeping a launcher field
|
||||||
|
|
||||||
|
Before keeping an interactive prompt or launcher-written env var, grep every consumer across the filesystem (`grep -r CLAUDE_TIME_HORIZON ~`). Two vars (`CLAUDE_TIME_HORIZON`, `CLAUDE_PROVIDER`) accumulated in `active-mode.env` unused; auditing consumers revealed the dead code and pointed to every downstream file needing a matching edit (skill templates, statusline).
|
||||||
|
|
||||||
|
## Resolved: claude-profile ↔ CLAUDE.md / statusline integration questions
|
||||||
|
|
||||||
|
Open questions from the 2026-04-12 design session are now resolved: (1) CLAUDE.md session-start reads `active-mode.env` and auto-selects the project from cwd or `CLAUDE_PROJECT`, skipping the interactive picker; (2) the status-line script is bash at `~/.claude/status/statusline.sh` (not in any git repo, changes are live immediately); (3) mode switching became the `/switch-mode` slash command / `switch-mode` skill, not a hook-matched literal phrase. Still open: MiniMax M2 agentic-CLI availability and the token-budget comparison for the inverted architecture (tracked in FUTURE.md, not memory).
|
||||||
|
|||||||
Reference in New Issue
Block a user