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 c81d45a291
Some checks failed
Build / validate (pull_request) Failing after 4s
heph-core: real HLC + persistent device origin (sync 8a)
First sync slice. Ratifies yrs for body merge in the tech-spec.

- hlc module: Hlc (physical, counter, origin) with a fixed-width encoding
  whose lexical order equals causal order; HlcClock generator (tick/update)
  — clock-injected, strictly monotonic. Unit + 2 proptests.
- meta table (migration v3) holds the stable per-device `origin` and the
  last HLC. next_hlc() does a read-modify-write inside the caller's
  transaction (store is single-writer, so no race), replacing the
  timestamp placeholder. Every node write is now stamped with a real,
  monotonic, causally-ordered HLC.

4 stamping integration tests (monotonic under stalled/regressed clock;
origin shared + persists across reopen; HLC resumes from persisted state).
89 tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 21:13:55 -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 Initial commit 2026-05-31 06:13:36 -07:00
.github Initial commit 2026-05-31 06:13:36 -07:00
crates heph-core: real HLC + persistent device origin (sync 8a) 2026-05-31 21:13:55 -07:00
docs heph-core: real HLC + persistent device origin (sync 8a) 2026-05-31 21:13:55 -07:00
mise-tasks Initial commit 2026-05-31 06:13:36 -07:00
.gitignore Scaffold cargo workspace + heph-core foundation 2026-05-31 18:52:15 -07:00
.yamllint.yaml Initial commit 2026-05-31 06:13:36 -07:00
AGENTS.md heph CLI + export 2026-05-31 20:33:59 -07:00
Cargo.lock heph CLI + export 2026-05-31 20:33:59 -07:00
Cargo.toml heph CLI + export 2026-05-31 20:33:59 -07:00
CHANGELOG.md Initial commit 2026-05-31 06:13:36 -07:00
CLAUDE.md Initial commit 2026-05-31 06:13:36 -07:00
dagger.json Initial commit 2026-05-31 06:13:36 -07:00
LICENSE Set up hephaestus from template and add design + tech spec 2026-05-31 09:37:28 -07:00
mise.toml Initial commit 2026-05-31 06:13:36 -07:00
prek.toml Initial commit 2026-05-31 06:13:36 -07:00
README.md Set up hephaestus from template and add design + tech spec 2026-05-31 09:37:28 -07:00
towncrier.toml Initial commit 2026-05-31 06:13:36 -07:00

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.