Skip to content

Releases: Yeeef/pm

pm 0.16.3

Choose a tag to compare

@github-actions github-actions released this 27 Oct 19:38

A question skipped with "Chat about this" or in the Claude app no longer stays under "Sessions ask you".

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.16.3/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.16.3, then commit what it changes and merge it, as an ordinary PR.

Fixed

  • A Claude Code question the owner skips, with the dialog's "Chat about this" or in the Claude app (Remote Control), closes as dismissed when the session's turn ends. Before, Claude Code told no pm hook about the skip, and the question stayed open on the site until the session's process exited, in one case 18 hours later. Claude Code's Stop hook now runs pm hook ask as well, which pm upgrade adds to .claude/settings.json.

pm 0.16.2

Choose a tag to compare

@github-actions github-actions released this 27 Oct 18:15

A project's site page shows what waits on the owner, as a sprint's page does.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.16.2/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.16.2, then commit what it changes and merge it, as an ordinary PR.

Added

  • A project's page shows the open questions, decision needs and action needs (PR reviews included) of the project and of every sprint and task under it, each with its reply form, above the project's Decisions.

pm 0.16.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 15:39

A project can be renamed, and pm check names a project whose record title has drifted from the work store.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.16.1/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.16.1, then commit what it changes and merge it, as an ordinary PR.

Added

  • pm project edit <name> --title "…", with the reason as its body, renames a project, open or closed: its work-store title and its record's title header, in one records commit that records the rename as a project decision (source=owner with --confirmed). Its name, record path and links stay as they are.
  • pm check lists each project whose record title: differs from its work-store title, with the pm project edit that fixes it. It is a report: neither pm check nor pm commit fails on it.

pm 0.16.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 15:02

The site can serve a company network without Cloudflare: where it listens (listen), the link pm prints (site_url) and how a request from beyond this machine gets in (access) are now three settings.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.16.0/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.16.0, then commit what it changes and merge it, as an ordinary PR.
  3. Commit .pm/config.toml once pm upgrade (or pm init) has added access = "cloudflare" to a config that sets access_team. A config with site_url and no access_team gets no access: set one with pm init --access cloudflare or pm init --access none, or the pm service does not start.

Added

  • pm init --listen ADDR sets listen, the IP the site binds (127.0.0.1 when unset; 0.0.0.0 for every interface), and pm init --access cloudflare|none sets access. With access = "none" the network is the gate: colleagues read the site at site_url with no login, but replies are taken only from this machine; their pages show the rule in place of each reply form. pm where and the service log state a non-loopback listen.

Changed

  • access is required once listen is not loopback or site_url is set: the pm service does not start without it, and pm doctor names it.

Security

  • A request is local only when its TCP peer is loopback, its Host names this machine and Cloudflare's edge did not forward it; the Host header alone no longer grants local trust, so a client on the network sending Host: localhost is refused.

pm 0.15.9

Choose a tag to compare

@github-actions github-actions released this 25 Oct 09:12

A pm repo can now review, close and stamp a pull request of another GitHub repo, so one pm project can track work merged in the repos it manages, its own remote on GitHub or not.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.15.9/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.15.9, then commit what it changes and merge it, as an ordinary PR.

Added

  • pm action need --pr URL takes another GitHub repo's PR: one whose OWNER/REPO the remote's URL does not name, or any GitHub PR when the remote is not on GitHub. The PR must target that repo's default branch, and the design-page check does not run on it, since the pages' covers are this repo's paths.
  • pm need close <review> --reason "merged as <sha>", at the close or at a restamp, checks another repo's PR's <sha> against the merge commit gh gives for it into that repo's default branch, instead of this repo's main.
  • pm sprint close stamps another repo's PR as OWNER/REPO#N in the Outcome, and --merged SHA --pr URL takes another repo's PR the same way.
  • The pm service sees another repo's PR merged into that repo's default branch and tells the session to close its review, without asking it to pull this repo's main.

pm 0.15.8

Choose a tag to compare

@github-actions github-actions released this 25 Oct 08:39

The site's overview lists the open projects first and closed ones in a collapsed section at the bottom.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.15.8/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.15.8, then commit what it changes and merge it, as an ordinary PR.

Changed

  • The overview page lists every open project first, then folds the closed ones into one "Closed projects (N)" section at the bottom, collapsed until opened. Before, closed projects sat among the open ones in name order.

pm 0.15.7

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:11

A closed project or sprint can be reopened, keeping its history in one record.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.15.7/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.15.7, then commit what it changes and merge it, as an ordinary PR.

Added

  • pm project reopen <name> and pm sprint reopen <id> set a closed project or sprint open again. Each takes the reason as its body, on two lines or more, and records it, with the close reason it had, as a decision in the reopened record (--confirmed marks it source=owner). The record's Outcome, or the sprint's delivery report, goes back to "Not closed yet.", so the next close needs a fresh one; the old text stays in git history. A sprint of a closed project is refused until pm project reopen reopens the project.

pm 0.15.6

Choose a tag to compare

@github-actions github-actions released this 17 Oct 22:03

Every command names its scope with --sprint, --task or --project, and one verb, pm need close, closes a need that sets no rule.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.15.6/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.15.6, then commit what it changes and merge it, as an ordinary PR.

Breaking changes

  • A need names its sprint or task with --sprint ID or --task ID, in place of --parent, and a decision's level is the scope flag alone. Migration: pm decision need --parent ID … → pm decision need --sprint ID … (or --task ID); pm action need --parent ID … → pm action need --sprint ID … (or --task ID); pm decision add --level project --project NAME … → pm decision add --project NAME …; pm decision add --level sprint --sprint ID … → pm decision add --sprint ID …; pm task add --parent TASK … → pm task add --task TASK ….
  • pm need close ID --reason "…" closes a decision need whose answer sets no rule (with the answer as its body), an action, a PR review and a question; --dropped closes any open need as dismissed. Migration: pm decision close ID --reason "…" --text-file - → pm need close ID --reason "…" --text-file -; pm action done ID --reason "merged as <sha>" → pm need close ID --reason "merged as <sha>"; pm need dismiss ID --reason "…" → pm need close ID --dropped --reason "…".
  • Each removed flag and verb is refused, naming the form that replaced it; none is kept as an alias.

Changed

  • The positional argument of pm project open and pm project close is named project in their help, as the naming grammar names it.

pm 0.15.5

Choose a tag to compare

@github-actions github-actions released this 17 Oct 19:36

pm sets Codex's auto mode in the repo's .codex/config.toml, and pm doctor names a Linux host where Codex's sandbox cannot start.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.15.5/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.15.5, then commit what it changes and merge it, as an ordinary PR.

Added

  • pm init and pm upgrade write Codex's auto mode into the repo's tracked .codex/config.toml: approval_policy = "on-request", approvals_reviewer = "auto_review" and sandbox_mode = "workspace-write", so a Codex session in a repo it trusts runs commands in the workspace-write sandbox and the automatic reviewer decides each approval request. Your other keys in the file stay, and so does a value you give one of these three keys: pm doctor names only a missing key, pm upgrade adds only that, and pm uninstall removes only pm's block, its comment and the keys under it that hold pm's values, giving your file back as it was. Your own ~/.codex/config.toml is left as it was.
  • On Linux, where Codex is installed and has run, pm doctor runs codex sandbox -- true and fails when bubblewrap cannot make its namespaces, the case in which every command Codex runs sandboxed, apply_patch included, fails. Under Ubuntu 24.04's AppArmor restriction on unprivileged user namespaces, its line gives the AppArmor profile for bwrap to add, or the sysctl to lift; pm doctor changes neither itself.

pm 0.15.4

Choose a tag to compare

@github-actions github-actions released this 17 Oct 12:48

An agent starting work now sees the design pages of its area: pm sprint open and a session's first pm task claim in a sprint list them.

Upgrade guide

  1. On each machine, install the release: curl -fsSL https://github.com/Yeeef/pm/releases/download/pm-v0.15.4/install.sh | sh.
  2. In the repo, run pm upgrade --to 0.15.4, then commit what it changes and merge it, as an ordinary PR.

Added

  • pm sprint open prints the design pages its project's record lists, one line each: slug, title and link.
  • pm task claim prints, on the session's first claim in the task's sprint, the design pages the sprint's record and then the project's list, without repeats; a task directly under a project gets the project's. A slug that names no design page shows as missing. prime.md says to read the pages the task touches before changing their code.