Phase 1: v1 prototype #1

Merged
eblume merged 91 commits from feature/v1-prototype into main 2026-06-03 20:48:23 -07:00
5 changed files with 8 additions and 5 deletions
Showing only changes of commit 391277c939 - Show all commits

fix(build): commit the datespec-move wiring (orphaned in T2c)
Some checks are pending
Build / validate (pull_request) Has started running

The T2c commit moved datespec.rs into hephd but left its wiring uncommitted:
hephd's lib never exported `pub mod datespec`, hephd lacked the chrono dep,
and the CLI still declared `mod datespec` for a file that had moved. The
working tree had these (so local builds passed) but the pushed tree didn't,
breaking `cargo install` of heph + heph-tui. Commit them.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Erich Blume 2026-06-03 07:45:27 -07:00

1
Cargo.lock generated
View file

@ -1286,6 +1286,7 @@ dependencies = [
"anyhow",
"axum",
"base64",
"chrono",
"clap",
"fs4",
"heph-core",

View file

@ -13,9 +13,8 @@ use clap::{Parser, Subcommand};
use serde_json::{json, Value};
use heph_core::{Node, RankedTask, Task};
use hephd::{default_socket_path, Client, DeviceFlow, KeyringTokenStore, TokenStore};
use hephd::{datespec, default_socket_path, Client, DeviceFlow, KeyringTokenStore, TokenStore};
mod datespec;
mod service;
#[derive(Parser, Debug)]

View file

@ -18,6 +18,7 @@ path = "src/main.rs"
[dependencies]
heph-core = { path = "../heph-core" }
chrono.workspace = true
tokio.workspace = true
serde.workspace = true
serde_json.workspace = true

View file

@ -1,7 +1,8 @@
//! Human-friendly date and recurrence parsing for the CLI (tech-spec §1, §8).
//! Human-friendly date and recurrence parsing for client surfaces — the CLI
//! and the TUI (tech-spec §1, §8, §8.1).
//!
//! `heph-core` is clock-pure (no ambient wall-clock reads); the CLI is a client,
//! so it may read the local clock. Date parsing is split so the logic is
//! `heph-core` is clock-pure (no ambient wall-clock reads); clients may read the
//! local clock. Date parsing is split so the logic is
//! deterministically testable: the pure functions take `today` / a year, and the
//! thin wrappers supply `Local::now()`.
//!

View file

@ -10,6 +10,7 @@
pub mod auth;
pub mod client;
pub mod clock;
pub mod datespec;
pub mod lock;
pub mod oauth;
pub mod remote;