{% extends "base.html" %} {% import "_empty.html" as empty %} {% block title %}Review{% endblock %} {% block topbar_main %}
No plan waiting on a decision matches “{{ q }}”. Show everything waiting.
{% endcall %} {% else %} {% call empty.state('clear', 'Nothing is waiting') %}No plan here has an open proposal. This page fills in when somebody proposes a revision, whether they are on this machine or another one.
{% endcall %} {% endif %}Reviewing is a signed record, not a form post, so it happens at the command line where this machine's key lives. A browser session cannot sign anything — that separation is what stops a page on the internet accepting a plan on your behalf.
Then flanner review decide <plan> --accept
or --reject. The decision syncs to your peers
like any other version.
n notes are comments from the mesh, each signed by a teammate's device. A +n counts notes returned in a review packet by somebody outside the team; those are unsigned, so they are recorded as received rather than authored. Neither kind moves a plan's accepted baseline — pointing at a paragraph is not the same as deciding about it.
advisory marks a project whose roles are local to this machine. Review still runs and every decision is still signed, but the role map is editable by whoever holds this device, so accepting a plan records a decision rather than authorizing one. Roles become enforced once the project joins a workspace and this device holds a valid entitlement.
Review decisions never reach the control plane. It holds accounts, devices and access; what anyone thinks of a plan stays on the machines that hold the plan. How syncing works.