Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).

## [5.1.0] - 2026-04-21 — gstack adapter

Third first-class harness target: `dhee install gstack`. gstack (Garry
Tan's 23-skill Claude Code skill pack) keeps its memory under
`~/.gstack/projects/<slug>/` as siloed JSONL + markdown. This release
adds a read-only adapter that ingests every gstack learning, timeline
event, review, and checkpoint section into Dhee's existing memory
pipeline so gstack users get semantic search, consolidation, correction,
and episodic rehydration without rewriting any gstack code.

- New: `dhee/adapters/gstack.py` + `dhee/adapters/gstack_parser.py` —
detect, backfill, and delta tail-ingest with per-project cursor
manifest at `$DHEE_DATA_DIR/gstack_manifest.json`.
- New: `dhee install gstack` (also `dhee install --harness gstack`) and
`dhee adapters gstack [status|reingest|clear]`.
- `dhee harness status` / `enable` / `disable` now accepts `--harness gstack`.
- Claude Code session hooks call `tail_ingest()` on `SessionStart` and
`Stop`; no-op unless the user has explicitly run `dhee install gstack`.
- Zero mutation of gstack files. Respects `$GSTACK_HOME`. Runs gstack's
own prompt-injection denylist before writing so we never ingest what
gstack itself would reject.
- Docs: `docs/adapters/gstack.md` maps gstack's six memory failure modes
onto the existing Dhee components that fix each one.
- Tests: `tests/test_gstack_adapter.py` covers backfill, tail,
idempotency, checkpoint sectioning, uninstall, graceful skip when
gstack is absent, and injection-safe refusal.

## [5.0.0] - 2026-04-20 — Portable Memory OS Release

Native Claude Code + Codex on one shared Dhee kernel. This release turns Dhee from "memory + router for one harness" into a portable memory OS with native harness install, host-parsed artifact reuse, continuity/handoff, shared-task collaboration, and signed export/import packs.
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,14 @@ After install:
- Codex uses native `config.toml` + Dhee-managed instructions + incremental event-stream sync, so post-tool results and uploaded artifacts become shared reusable context without manual re-sync.
- `dhee harness status` shows the live state and `dhee harness disable --harness codex` turns a harness off cleanly.

### Third-party skill packs: `dhee install gstack`

Running [gstack](https://github.com/garrytan/gstack)? `dhee install gstack`
wires its siloed `~/.gstack/projects/*` memory into the same Dhee pipeline
as everything else — semantic search, consolidation, correction, episodic
recall — without touching any gstack files. See
[docs/adapters/gstack.md](docs/adapters/gstack.md).

Project docs (CLAUDE.md, AGENTS.md, SKILL.md, etc.) still auto-ingest on first use. Run `dhee ingest` manually any time to re-chunk.

---
Expand Down
12 changes: 12 additions & 0 deletions dhee/adapters/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""Third-party tool adapters that ingest external memory surfaces into Dhee.
Each adapter lives in its own module and exposes a minimal surface:
* ``detect()`` — best-effort discovery; never raises
* ``backfill(...)`` — ingest everything not already seen
* ``tail_ingest(...)`` — best-effort delta ingest called from session hooks
Adapters write through the standard ``Dhee.remember`` API so ingested
atoms flow through the same embedding, engram extraction, conflict, and
forgetting pipelines as every other Dhee memory.
"""
Loading
Loading