A fork of earendil-works/pi-mono whose sole purpose is to host a daily upstream sync & digest workflow. The fork's main holds the workflow, the digest script, and upstream-sync.log — nothing from upstream is merged in.
Once a day (and on manual trigger) the Upstream Sync & Digest workflow posts a digest comment on shaftoe/pi#1. Each run:
- Fetches
upstream/mainby ref (no tags, no rebase, no merge-base). - Resolves the range between the last-synced tip (the top non-comment line of
upstream-sync.log) and the current upstream tip. - Generates a digest prompt with
scripts/upstream-digest.tscovering exactly that commit range. - Runs the prompt through an LLM via
shaftoe/pi-coding-agent-actionand posts the result as a comment on the tracked issue. - Records the synced tip by prepending one line to
upstream-sync.logand committing it tomain— the only write the workflow makes.
The log line is written only after the digest comment lands. A run that fails late simply redoes the same range next time.
bun scripts/upstream-digest.ts --from <last-synced-sha> --to upstream/mainIt prints the prompt to stdout — pipe it into pi (or any LLM) to produce the digest. --from is required; the workflow reads it from the top of upstream-sync.log.
- digest currently generated by Z.ai
glm-4.5-airLLM model upstream/mainis treated as read-only here.- Runs are serialized by a concurrency group so two concurrent runs can't both write
upstream-sync.log. - On the very first run (empty log) the marker is initialized to the current tip and no catch-up digest is produced; daily cadence starts the next day.