A started session waited for the next tick to get its opening prompt, and
the pending flag lived in memory, so a restart in between left it sitting
empty with nothing to do.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
One systemd daemon watches GitHub and Gitea and routes each PR to an aoe
session: `land` for PRs you authored, `review-pr` for everyone else's.
It reads metadata only and sends a single inert hint line, so untrusted
PR text never passes through the thing that types into agent prompts.
Routing is derived from `aoe list --json --all` by worktree branch, so
no claim files and no daemon database. Dedupe stays in the session via
`pr-<N>-seen`, which makes hints idempotent and a swallowed send
self-healing.
`land` loses its watcher machinery to the daemon and keeps the policy
and per-event handlers; `pr-common` holds what both skills share.
Review sessions run non-yolo without trusted hooks and never run the
branch's code.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Half-days forced every result into a 4h bucket. Days with hours split by
share give the same answer at finer granularity and drop a concept.
Session minutes are now stated as a floor on real work, not a measure:
the day's length comes from the calendar and only the split between
projects comes from the sessions. Meetings and review leave no
transcript, so a thin day is still a full day.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Turns Claude Code and Codex session activity into a half-day-per-project
proposal, reconciles it against the timesheet API, and submits only what
the user approves in-session.
Activity is measured in 5-minute active slots, deduplicated per project,
not message counts — otherwise one overnight autonomous run outweighs a
real morning's work.
The path-to-project mapping and the API credentials stay in
~/.config/hourlog/ and ~/.env.claude. This repo is public.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Fridays 17:00 Europe/Lisbon, pinned in the unit because the machine
clock is UTC. Creates an Agent of Empires session in a fresh
week-review/<ISO week> worktree, sends it /week-review, notifies ntfy.
Interactive, not `claude -p`: the skill asks which carry-over issues to
take and what to apply, so an unattended run would stall or decide on
its own. link.sh links the units but does not enable them, since
enabling on every machine spawns one session per box for the same week.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SC9zwjErud3jfeYVEkf2Zd