| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Move the hook wrappers out of bin/ into hooks/, and name every
registered hook with a .hook.sh suffix. bin/ keeps only the standalone
installer and the by-hand utilities (memory-status.sh, managed-files.sh)
that those wrappers now resolve as their implementations.
Coalesce the eight per-language formatter hooks into a single
format.hook.sh that dispatches on file type with a case, so no file is
ever run through more than one formatter.
Update settings.json, .claude/settings.json, and .gitignore to match.
|
| |
|
|
|
|
|
| |
Have bin/install.sh warn to log back in when the drop-in's vars are not
yet active in the session, since environment.d is read only at login.
Before falling back to a default $XDG_CONFIG_HOME, warn and, when
interactive, pause so the user can set it first.
|
| |
|
|
|
|
|
|
| |
Add bin/install.sh, the standalone Claude Code installer.
It installs or updates the binary, then writes the systemd user drop-in
$XDG_CONFIG_HOME/environment.d/50-claude.conf, pointing CLAUDE_CONFIG_DIR
at this repo and setting CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.
Whitelist it in .gitignore alongside the other bin/ scripts.
|
| |
|
|
|
|
|
|
|
| |
Drop the user-level Setup hook that pointed each project's automemory at
its own .claude/memory/, the tracked memory entries, and the
autoMemoryDirectory settings. Strip the automemory stats, counts, and
warnings from the SessionStart memory-status report, leaving the
CLAUDE.md rows. Auto-memory is now disabled via
CLAUDE_CODE_DISABLE_AUTO_MEMORY in the environment.
|
| |
|
|
|
|
|
|
|
|
| |
Add a user-level Setup hook (bin/auto-memory-dir.hook.sh) that sets
autoMemoryDirectory to "$CLAUDE_PROJECT_DIR/.claude/memory/" in each
project's .claude/settings.json, so automemory lives with the repo instead of
under the shared projects/<encoded-cwd>/ default.
Extend memory-status.sh to resolve the automemory dir from that setting (when
present) and to warn when a project has not opted in.
|
| |
|
|
|
|
|
|
|
|
| |
Mirror the managed-files.{sh,hook.sh} convention: move the stats logic out
of hooks/session-start.sh into a standalone bin/memory-status.sh (runnable by
hand, takes cwd as $1), and add a thin bin/session-start.hook.sh wrapper that
does the stdin/JSON plumbing.
Behavior change: omit the 'Automemory entries' row when MEMORY.md is missing,
rather than showing a 0 count.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The per-project store kept each project's `.claude/` under
`projects/<encoded-cwd>/.claude/` with `$PWD/.claude` a symlink into it,
wired by a `Setup` hook. The indirection bought nothing — a project's
`.claude/` belongs in that project's own repo. Discard it.
- remove `hooks/setup-init.sh` (the symlink-wiring `Setup` hook) and its
registration
- remove `hooks/worktree-create.sh`: with `.claude/` tracked, a worktree
checks out its own, so `claude --worktree` reverts to the built-in
- rework `session-start.sh`: drop the `Setup`→`SessionStart`
`.last-setup-result.json` channel, report each memory file as a
whole-KB size, and warn only when the always-loaded MEMORY.md index
exceeds 25 KB
- `.gitignore` now tracks the top-level `.claude/` and, under
`projects/`, only `memory/` (the harness auto-memory)
tested: `session-start.sh` renders the KB stats table with no `Setup`
section and valid JSON; no tracked `projects/*/.claude/*` remain.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
bin/managed-files.sh classifies every file under the config dir as
git-tracked, Syncthing-synced, local, or both, to check that the
.gitignore and .stignore splits agree (the "both" bucket should stay
empty). bin/managed-files.hook.sh wraps it as a Setup hook, writing the
report and a JSON record of the four counts to machine-local dotfiles at
the project root.
Whitelist just these two files under bin/ in .gitignore. The per-machine
hook registration in projects/*/.claude/settings.json and the report
outputs stay untracked.
|
| |
|
|
|
|
|
|
|
|
|
| |
Collapse the double-submodule setup (claude-config + claude-memory) into
this single repo and replace the `claude-wrapper` launcher with hooks, so
`claude` runs directly — no alias, no installer.
Verified: `claude --init-only` wires/repairs the link and the no-store
path points at `dotfiles claude-adopt-project`; `git check-ignore`
confirms `*.jsonl`, session dirs, `settings.local.json`, and `worktrees/`
stay out while the stores and auto-memory are tracked.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The memory store is now a standalone git repo beside this config dir,
a sibling rather than nested (nesting would make it a submodule of a
submodule).
- `claude-wrapper` gains `claude memory [status | git … | commit]` to
drive the store repo, and its default store root moves to
`~/.config/claude-memory` (still overridable via `CLAUDE_MEMORY_DIRS`).
- Add a bash completion for `claude memory`, installed by `install.sh`.
- Track `completions/`; refresh the README and the `.gitignore` note.
|
|
|
Track only the hand-authored configuration of the ~/.config/claude
config dir. Runtime state, caches, and secrets stay untracked via a
whitelist .gitignore.
- .gitignore: whitelist ignore — everything excluded except the paths below
- README.md: map of tracked vs. untracked (runtime/secret) entries
- install.sh: bootstrap/installer for the config dir
- bin/claude-wrapper: the `claude` launcher (wires memory.d/, --add-dir)
- hooks/: harness hooks registered in settings.json
- format-on-edit: bash-format.sh, lua-format.sh, clang-format.sh,
cmake-format.sh, qml-format.sh, black-format.sh, markdown-format.sh,
php-cs-fixer.sh
- bash-log.sh: Bash-tool logger
- status-line.sh: custom status line
- worktree-create.sh: WorktreeCreate hook
- skills/common-commit/: shared commit-message skill (SKILL.md +
examples/emphasis.txt, examples/lists.txt)
- agents/.gitkeep: keep the empty agents/ dir
|