Parfii-bot
|
0ea429054f
|
feat(wave14): 5 bio-inspired primitives + phase2 cleanup + substrate dogfood
## Wave 14 — 5 new primitives (44 crates total, 713 tests green)
All specs written as task.toml → passed through kei-agent-runtime prepare
→ composed prompts via capability fragments → Agent tool invocation.
First fully-dogfooded wave.
- kei-prune (9 tests): biological pruning. `candidates(idle_days)` +
`mark_retired(id)` on sidecar `prune_retirements` table (agents.status
CHECK precluded 'retired' value).
- kei-discover (8 tests): federated marketplace discovery stub. UNIQUE
slug via custom migration + FTS5 on slug+description. Engine-native
via kei-entity-store. Typed DuplicateSlug error.
- kei-brain-view (6-8 tests): stdout visualizer for ledger taxonomy
graph + agent lineage. Tree / stats / lineage subcommands. NO_COLOR
env respected. No kei-entity-store dep (direct rusqlite).
- kei-hibernate (6 tests): whole-brain tar.zst export/import. Manifest
with sha256 per-file, version gate, safe_join on extract, dry-run
mode. tar 0.4 + zstd 0.13.
- kei-ledger-sign (7 tests): ed25519 creator attestation. keygen / sign /
verify CLI. Canonical message `dna|spec_sha|creator_id` with pipe
rejection. chmod 600 on key storage (unix). Tamper-detection on load
via pubkey re-derivation.
## Phase 2 cleanup shipped in same commit
- LOC splits: walk.rs 221→91 (path_safety.rs + wikilink.rs extracted),
prepare.rs 228→199 (dead build_ledger_row removed, fn helpers split).
- Clippy pass: 6 warnings fixed (derivable_impls, manual_contains,
type_complexity x2, doc_overindented_list_items x2) in
kei-entity-store, kei-ledger, kei-spawn.
- DNA eprintln removed from kei-agent-runtime/src/dna.rs (stderr
pollution from library parse).
- kei-pipe integrations: hot_reload.rs (kei-watch wrapper, sync API,
50ms debounce) + scheduler_bridge.rs (kei-scheduler executor, shell
exec documented). +6 tests.
- Workspace [workspace.dependencies] centralised: rusqlite/chrono/
anyhow/thiserror/tempfile/toml — future crates opt in via
`.workspace = true`. Existing pins preserved.
## Substrate dogfood verified
task.toml → `kei-agent-runtime prepare` → DNA + composed prompt from
capability fragments → Agent tool invocation. kei-spawn also tested
end-to-end (prompt.md written to tasks/<agent-id>/, ledger row created).
Verified: cargo check --workspace clean, 713 tests passing,
substrate_integration.sh ✓, hook_wiring_integration.sh ✓.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-23 17:19:25 +08:00 |
|
Parfii-bot
|
4a9dd98fde
|
feat(p-pipe-cache): wire kei-cache into kei-pipe DAG executor
Optional per-step and DAG-level cache config in dag.toml:
[[steps]]
cache = { enabled = true, ttl_sec = 3600 }
OR
[pipe]
cache = { enabled = true, ttl_sec = 3600 }
Cache gated by AtomKind — only query/transform cacheable; command/stream
always re-invoke even with cache.enabled=true.
StepReport.source: Some('cache'|'fresh') | None shows cache outcome.
Constructor Pattern: extracted src/config.rs (CacheConfig + StepKind
+ TOML raw types + split_pipe_cache parser) + src/topo.rs (topo-sort)
to keep dag.rs under 200 LOC.
Tests: 8/8 (was 5, +3: cache-hit reuse, cache-disabled always invokes,
command-kind not cached even if enabled).
kei-cache 22/22 preserved.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-23 14:26:11 +08:00 |
|
Parfii-bot
|
0b948ca07c
|
feat(r1): new kei-pipe crate — atom DAG runtime
The critical missing substrate composition layer.
kei-pipe run <dag.toml> — reads DAG spec, topo-sorts atoms, executes
sequentially, pipes JSON between steps via $step.path.to.field
resolver. 6 Constructor-Pattern cubes: dag/resolve/exec/report/lib/main.
5/5 smoke tests: happy path + cycle detection + unknown dep +
nested path resolver + unreadable file.
Resolver envelope matches kei-runtime Output — atoms round-trip
identically through either runtime.
Workspace Cargo.toml: +kei-pipe member.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-23 05:55:13 +08:00 |
|