Skip to content

feat: close the human loop — interactive init + scheduled digests with notifications - #6

Merged
chrisschouk merged 1 commit into
mainfrom
feat/human-loop-schedule-init
Jul 20, 2026
Merged

feat: close the human loop — interactive init + scheduled digests with notifications#6
chrisschouk merged 1 commit into
mainfrom
feat/human-loop-schedule-init

Conversation

@chrisschouk

Copy link
Copy Markdown
Owner

TOT-96 + TOT-97. podflow init becomes an interactive wizard (provider, key stored 0600, interests); podflow schedule installs a weekly launchd job whose runs end in a macOS notification — the digest reaches the human instead of waiting in a file. launchd traps handled (PATH, absolute paths, key-from-config with a clear guard). Notification verified on this Mac, including the no-new-episodes path.

🤖 Generated with Claude Code

…h notifications

TOT-96 + TOT-97 (human-first principle, 20 Jul): the engine worked but output
was a markdown file nobody opened — last real run 25 Mar. Now the digest
reaches the human without them remembering a CLI.

init (TOT-97):
- Interactive wizard on a TTY: about, provider pick, API key (uses env var if
  found or paste; stored in ~/.podflow/config.json written 0600), interests.
- --yes or non-TTY (CI/agents) keeps the old defaults path.
- config.apiKey wired through getModel for all providers (env fallback kept).

schedule (TOT-96):
- podflow schedule installs a launchd LaunchAgent (weekly Mon 08:00 default;
  --daily, --time, --max-episodes; --off removes; --status reports).
- Handles the launchd traps: explicit PATH in plist, absolute node+script
  paths, API key from config (launchd never sees shell env — guarded with a
  clear error if config.apiKey missing).
- digest --scheduled ends with a macOS notification (osascript), including on
  the no-new-episodes early-exit path — the branch most weeks hit (caught in
  testing: first version only notified on the processing path).

Verified: typecheck+build green; schedule --status and the no-key guard exercised;
notification delivery confirmed via osascript on this Mac.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DKmgBfWaWck8v2uK389fBb
@chrisschouk
chrisschouk merged commit 1b90ac1 into main Jul 20, 2026
@chrisschouk
chrisschouk deleted the feat/human-loop-schedule-init branch July 20, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant