You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The v1 REST API and the Laravel/PHP SDK cover workspaces well — list, create,
messages, diff, commit, pull-request, stop — but they have zero coverage of
Autopilot. grep -ri "autopilot" polyscope-laravel/ returns nothing.
That makes Autopilot the one part of Polyscope you cannot drive remotely, which is
a shame because it is precisely the part that runs unattended for hours and
therefore benefits most from external automation.
Motivation
Concrete case: when the Claude session limit is hit, an Autopilot goal pauses and
does not resume on its own (see discussion #48). Everything needed to detect that
condition is already stored locally — goal status, story statuses, the error
message with the reset time — but there is no API to act on it, so the only way to
continue is a human clicking Resume.
Right now the only way to read Autopilot state from outside is to open
~/.polyscope/polyscope.db read-only and query autopilot_meta / autopilot_stories /
sessions directly. That works, but it is unsupported, it only works on the same
machine, and it breaks on any schema change. A couple of read endpoints would
remove the need entirely.
Read
The cheapest possible version: include an autopilot object in the existing
GET /api/v1/workspaces/{id}, next to the agent object that is already there:
GET /api/v1/workspaces/{id}/autopilot/stories
-> story_id, title, description, acceptance_criteria, sort_order,
status (pending|in_progress|completed|failed)
It would also help if autopilot.status were exposed in the workspace list
response, so a poller can find paused goals in one request instead of N.
Write
POST /api/v1/workspaces/{id}/autopilot
{ goal, model?, max_iterations?, linked_workspace_ids? }
-> generates the story list, same as the dialog
POST /api/v1/workspaces/{id}/autopilot/resume (equivalent of Play)
POST /api/v1/workspaces/{id}/autopilot/pause
POST /api/v1/workspaces/{id}/autopilot/stop
POST /api/v1/workspaces/{id}/autopilot/plan/approve
{ clear_context: bool }
-> the two options from the approval dialog
PATCH /api/v1/workspaces/{id}/autopilot
{ max_iterations }
Story editing (create / update / delete / reorder pending stories) would be nice
to have, but the list above is what unblocks real automation. If only one thing
ships, resume plus the read fields is enough.
Note on PATCH max_iterations: as far as I can tell the cap cannot be changed once a
goal is running, not via the API and not in the UI either (not in the Stories panel,
not in the command palette). That matters because a single session-limit event can
push the counter past the cap, and from then on the goal pauses at every story
boundary with no way to raise it.
Happy to test any of this against a real workload — I typically run 3-4 Autopilot
goals in parallel on a dedicated always-on Mac mini.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
The v1 REST API and the Laravel/PHP SDK cover workspaces well — list, create,
messages, diff, commit, pull-request, stop — but they have zero coverage of
Autopilot.
grep -ri "autopilot" polyscope-laravel/returns nothing.That makes Autopilot the one part of Polyscope you cannot drive remotely, which is
a shame because it is precisely the part that runs unattended for hours and
therefore benefits most from external automation.
Motivation
Concrete case: when the Claude session limit is hit, an Autopilot goal pauses and
does not resume on its own (see discussion #48). Everything needed to detect that
condition is already stored locally — goal status, story statuses, the error
message with the reset time — but there is no API to act on it, so the only way to
continue is a human clicking Resume.
Right now the only way to read Autopilot state from outside is to open
~/.polyscope/polyscope.db read-only and query autopilot_meta / autopilot_stories /
sessions directly. That works, but it is unsupported, it only works on the same
machine, and it breaks on any schema change. A couple of read endpoints would
remove the need entirely.
Read
The cheapest possible version: include an
autopilotobject in the existingGET /api/v1/workspaces/{id}, next to the
agentobject that is already there:And one endpoint for the plan:
It would also help if
autopilot.statuswere exposed in the workspace listresponse, so a poller can find paused goals in one request instead of N.
Write
Story editing (create / update / delete / reorder pending stories) would be nice
to have, but the list above is what unblocks real automation. If only one thing
ships,
resumeplus the read fields is enough.Note on PATCH max_iterations: as far as I can tell the cap cannot be changed once a
goal is running, not via the API and not in the UI either (not in the Stories panel,
not in the command palette). That matters because a single session-limit event can
push the counter past the cap, and from then on the goal pauses at every story
boundary with no way to raise it.
Happy to test any of this against a real workload — I typically run 3-4 Autopilot
goals in parallel on a dedicated always-on Mac mini.
All reactions