Review records
Reviewers can pin comments directly on your tunneled app while browsing it, using the
feedback widget available on *.tunnel.portzero.cloud domains. Each comment thread
gets a short ref like PZ-42. A review record ties those threads to the code that
changed: it captures your branch’s commit list and unified diff, plus the tunnel domain
hosting the live app, and uploads it to portzero.cloud.
The dashboard then shows the diff, the commits, and every feedback thread on that
domain side by side, at https://app.portzero.net/#/review-records.
portzero review
Run it from your branch:
portzero review
It requires portzero login, then:
- Resolves the base ref:
--base <ref>if given, else origin’s default branch, elsemain. - Collects the commits and the diff from
merge-base HEAD <base>toHEAD. Diffs over 5 MB are rejected — upload a smaller branch or pass a nearer--base. - Picks the cloud tunnel domain hosting the live app:
--domain <domain>if given, else a discovered cloud tunnel matching the project or branch name, else the only discovered cloud tunnel. - Uploads the record and prints its dashboard URL.
--openopens it in a browser.
Flags: --base <ref>, --domain <domain>, --project <name>, --open.
Re-running on the same branch updates the open record in place — one open record per branch.
The Fixes PZ-<n> convention
Mention a thread ref in a commit message to mark it fixed:
git commit -m "Fix checkout button contrast (Fixes PZ-42)"
portzero review
When the review record uploads, the cloud scans commit messages for Fixes PZ-<n>
(also Closes / Resolves) and advances each referenced open thread to
fix_proposed, recording the commit SHA and subject line. The CLI prints each
advanced thread:
PZ-42: fix proposed (abc1234)
Humans resolve, not machines
A proposed fix is a claim, not a resolution. A fix_proposed thread awaits human
confirmation:
- The commenter sees a “Marked fixed” banner on their pin in the live app and clicks Confirm fixed — or Still broken, which reopens the thread.
- A team member can resolve or reopen it from the dashboard.
Threads move open → fix_proposed → resolved, with provenance recorded at each step.
The review link
A comment thread usually spills into two other places: replies on the pull request, and the commits that claim to fix it. The review link pulls both back into the thread so it reads as one conversation.
PR replies come back. Mention a thread’s ref in a comment on the pull request — “PZ-42 still looks wrong on mobile” — and that comment appears in the thread, in the dashboard and on the pin in the live app, attributed to its GitHub author and linked back to the PR. Editing the PR comment updates it; deleting it removes it. Port Zero’s own PR comments are never pulled back in.
Commits show what they changed. Every commit whose message references PZ-<n>
is listed on the thread with its subject, author, and the files it touched, each
expandable to the exact lines that changed. A second commit against an already-fixed
thread is listed too — that history is the point.
Turning it on
The review link is off by default, per repo, on the repo’s configuration page in the dashboard.
On Free and Professional, the review link is one of the features paid for with data. What you grant is a training-data licence over that repo’s review history — diffs, comments, fix commits, and verdicts — and that one licence is what enables both the review link and cost tracking. The dashboard shows the exact Terms version you are agreeing to. Revoke at any time; revoking stops future capture, removes the repo from the corpus going forward, and turns both features back off.
On Team and Enterprise, the review link is included and needs no such grant. Those plans do not license their data for training at all.
What is not gated: Fixes PZ-<n> still advances a thread to fix_proposed on
every plan, consented or not. Consent buys the visualization of that commit, not the
status transition.
For AI coding agents
The MCP server exposes the same workflow: list_feedback lists the
threads (refs, routes, comment bodies), and propose_fix marks one fixed by a specific
commit. Or skip the tool call entirely: commit with Fixes PZ-<n> and run portzero review.