Personal context management system: wiki-style knowledge base and task management.
  • Rust 89.1%
  • JavaScript 8.8%
  • CSS 1.2%
  • Python 0.5%
  • Shell 0.3%
  • Other 0.1%
Find a file
Erich Blume ed8c7a733a
Some checks failed
Build / validate (pull_request) Failing after 3s
hephd local mode: file lock + JSON-RPC over unix socket
Slice 6 (tech-spec §3, §6, §10). First async component — the per-device
daemon in local mode.

- `LockGuard`: exclusive advisory flock on a sidecar `<db>.lock`; a second
  acquire fails and releases on drop (the §3.1 lock handoff).
- JSON-RPC (line-delimited): `rpc::dispatch` maps node/task/next/links/log
  methods onto the heph-core Store; `Daemon::serve` accepts unix-socket
  connections and runs dispatch on tokio's blocking pool behind an
  Arc<Mutex<LocalStore>> (DB never touches an async worker).
- Synchronous `Client` for surfaces/CLI; `hephd` binary (clap) opens the
  store under lock and serves the default socket.
- heph-core model/ranking types are now serde-(de)serializable; added
  node.tombstone + Store::tombstone_node.

Tests: 2 lock unit tests + 5 real-socket e2e (round-trip with clock
injection, next, error paths, recurring roll-forward over RPC, 8-client
concurrency). 60 tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 20:28:15 -07:00
.dagger Set up hephaestus from template and add design + tech spec 2026-05-31 09:37:28 -07:00
.forgejo Scaffold cargo workspace + heph-core foundation 2026-05-31 18:52:15 -07:00
.gitea
.github
crates hephd local mode: file lock + JSON-RPC over unix socket 2026-05-31 20:28:15 -07:00
docs hephd local mode: file lock + JSON-RPC over unix socket 2026-05-31 20:28:15 -07:00
mise-tasks
.gitignore Scaffold cargo workspace + heph-core foundation 2026-05-31 18:52:15 -07:00
.yamllint.yaml
AGENTS.md hephd local mode: file lock + JSON-RPC over unix socket 2026-05-31 20:28:15 -07:00
Cargo.lock hephd local mode: file lock + JSON-RPC over unix socket 2026-05-31 20:28:15 -07:00
Cargo.toml hephd local mode: file lock + JSON-RPC over unix socket 2026-05-31 20:28:15 -07:00
CHANGELOG.md
CLAUDE.md
dagger.json
LICENSE Set up hephaestus from template and add design + tech spec 2026-05-31 09:37:28 -07:00
mise.toml
prek.toml
README.md Set up hephaestus from template and add design + tech spec 2026-05-31 09:37:28 -07:00
towncrier.toml

hephaestus

A personal context management system — a unified, self-hosted application that fuses a wiki-style knowledge base (Zettelkasten) with task management. Built in Rust, offline-capable, and syncs to a central instance hosted in blumeops.

See the project design document for goals, architecture, and the development roadmap.

What's Included

  • DocumentationDiataxis-structured docs built with Quartz
  • ChangelogTowncrier fragment-based changelog
  • CI/CDDagger pipelines + Forgejo build and release workflows
  • Pre-commit hooksprek with linting, formatting, secret detection
  • AI assistanceAGENTS.md + structured docs for Claude Code (C0/C1/C2 change process, Mikado method)
  • Task runnermise tasks for docs validation, Mikado chain management, release preview, and runner inspection

Getting Started

# Install git hooks
prek install && prek install --hook-type commit-msg

# Run all pre-commit checks
prek run --all-files

# List available tasks
mise tasks

# Build docs (requires Dagger)
dagger call build-docs --src=. --version=dev export --path=./docs-dev.tar.gz

Project Structure

./docs/                 # documentation (Diataxis, Quartz)
./docs/changelog.d/     # leave only .gitkeep in the template; generated repos add towncrier fragments here
./.dagger/              # Dagger module backing docs builds and releases
./.forgejo/workflows/   # generic build/release workflows for generated repos
./.forgejo/scripts/     # optional per-project hooks consumed by those workflows
./mise-tasks/           # scripts via `mise run`

License

All rights reserved. This is a personal, private project — not licensed for use, copying, modification, or distribution. Open-sourcing may be considered in the future. See LICENSE.