Skip to content

Commit 6d04293

Browse files
authored
Merge pull request #26 from Sankhya-AI/feat/gstack-adapter
Add gstack adapter: one command to make gstack memory native to Dhee
2 parents 1af4e52 + a86e59a commit 6d04293

14 files changed

Lines changed: 1372 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file.
44

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

7+
## [5.1.0] - 2026-04-21 — gstack adapter
8+
9+
Third first-class harness target: `dhee install gstack`. gstack (Garry
10+
Tan's 23-skill Claude Code skill pack) keeps its memory under
11+
`~/.gstack/projects/<slug>/` as siloed JSONL + markdown. This release
12+
adds a read-only adapter that ingests every gstack learning, timeline
13+
event, review, and checkpoint section into Dhee's existing memory
14+
pipeline so gstack users get semantic search, consolidation, correction,
15+
and episodic rehydration without rewriting any gstack code.
16+
17+
- New: `dhee/adapters/gstack.py` + `dhee/adapters/gstack_parser.py`
18+
detect, backfill, and delta tail-ingest with per-project cursor
19+
manifest at `$DHEE_DATA_DIR/gstack_manifest.json`.
20+
- New: `dhee install gstack` (also `dhee install --harness gstack`) and
21+
`dhee adapters gstack [status|reingest|clear]`.
22+
- `dhee harness status` / `enable` / `disable` now accepts `--harness gstack`.
23+
- Claude Code session hooks call `tail_ingest()` on `SessionStart` and
24+
`Stop`; no-op unless the user has explicitly run `dhee install gstack`.
25+
- Zero mutation of gstack files. Respects `$GSTACK_HOME`. Runs gstack's
26+
own prompt-injection denylist before writing so we never ingest what
27+
gstack itself would reject.
28+
- Docs: `docs/adapters/gstack.md` maps gstack's six memory failure modes
29+
onto the existing Dhee components that fix each one.
30+
- Tests: `tests/test_gstack_adapter.py` covers backfill, tail,
31+
idempotency, checkpoint sectioning, uninstall, graceful skip when
32+
gstack is absent, and injection-safe refusal.
33+
734
## [5.0.0] - 2026-04-20 — Portable Memory OS Release
835

936
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.

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,14 @@ After install:
9898
- 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.
9999
- `dhee harness status` shows the live state and `dhee harness disable --harness codex` turns a harness off cleanly.
100100

101+
### Third-party skill packs: `dhee install gstack`
102+
103+
Running [gstack](https://github.com/garrytan/gstack)? `dhee install gstack`
104+
wires its siloed `~/.gstack/projects/*` memory into the same Dhee pipeline
105+
as everything else — semantic search, consolidation, correction, episodic
106+
recall — without touching any gstack files. See
107+
[docs/adapters/gstack.md](docs/adapters/gstack.md).
108+
101109
Project docs (CLAUDE.md, AGENTS.md, SKILL.md, etc.) still auto-ingest on first use. Run `dhee ingest` manually any time to re-chunk.
102110

103111
---

dhee/adapters/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"""Third-party tool adapters that ingest external memory surfaces into Dhee.
2+
3+
Each adapter lives in its own module and exposes a minimal surface:
4+
5+
* ``detect()`` — best-effort discovery; never raises
6+
* ``backfill(...)`` — ingest everything not already seen
7+
* ``tail_ingest(...)`` — best-effort delta ingest called from session hooks
8+
9+
Adapters write through the standard ``Dhee.remember`` API so ingested
10+
atoms flow through the same embedding, engram extraction, conflict, and
11+
forgetting pipelines as every other Dhee memory.
12+
"""

0 commit comments

Comments
 (0)