Applied migrations and seeds are recorded with a checksum of their source, so reformatting one warns every installation that already ran it. Ignore database/*/migrations/ and database/*/seeds/ in both templates and from the repository root.
* ci(v3-studio-image): publish the Studio image for linux/arm64 too
* ci(v3-studio-image): allow rebuilding a release image by dispatch
* ci(v3-studio-image): name the tags in the job that pushes them
* feat(studio): let agent comments wake other agents
An agent's comment wakes the agents it mentions or answers, as the person its run acts for, capped per issue by the workflow's commentRunLimit with an owner notice and a continue action.
* fix(studio): route agent comments by mention, else to the executor
An agent's reply no longer wakes the agent it answers; a comment naming no agent wakes the executing agent unless it addresses a person or the executor wrote it.
* feat(studio): tell issue runs what was said since their last run
A resumed issue run hears the comments since the agent's previous run started, inline when few or as a --since command otherwise; a fresh session is asked to read the comments. Adds since to the comment threads list and session-dependent turn notes to subject assemblies.
* feat(studio): have runs started by agent comments always report back
A run an agent's comment started answers in that comment's thread with its output, or why it failed, when it ends without commenting; cancelled runs post nothing.
* feat(chat): add global Agent input and durable submission state
* ci: retrigger checks
* fix(chat): explain blocked sends and refresh conversation caches
* fix(chat): keep upload tasks with their composer session
* test(studio): open chat panel through the global header editor
---------
Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>
* fix(agent-runner): recover unavailable conversations
* style(agents): normalize distribution route description quotes
* fix(agent-runner): keep startup recovery only and hold early Claude errors
Drop the one-time copy of legacy session histories: a missing conversation is
recovered within the run instead. Hold a Claude startup error result until
stderr is read so the inputs it lists are replayed to the fresh conversation,
and treat an OpenCode 404 as a missing conversation only when the server
reports a missing session.
* fix(agent-runner): defer resume startup effects until recovery is decided
* fix(agent-runner): precheck Claude history before starting a query
* test(agent-runner): keep throwing query fixture lint compliant
* fix(agents): guard development execution and queued stage work
* fix(agents): keep queued stage work withdrawable and wait out busy workspaces
- Tell a status change outside Backlog only to the executor's runs that are
already working; a queued run keeps only its stage inputs, so leaving the
stage withdraws it, and a non-developer executor is never started by the
status change path.
- Requeue workspaceBusy without counting it against maxAttempts, retrying
after 30 seconds up to two minutes and failing only after six hours of
waiting.
- Offer the agents alone to an approver who may not see the issue's project,
instead of failing the proposal state.
- Approve through the executor dialog in the browser tests, whose proposal
agent cannot implement.
* test(studio): align development approval coverage with execution guards
* refactor(agents): enforce issue stages when claiming runs
* fix(agents): filter claim inputs and report missing permissions
* test(studio): wait for the shell to settle before toggling the sidebar
* fix(agents): hold working runs to the subject's admission and input selection
Input joining a dispatched or running run, and pending input delivered to one,
now pass the subject's admit and the new selectInputs hook, so a run cannot act
on work for a stage its issue already left. Studio leaves earlier stage entries
out instead of cancelling the run, lets an agent mentioned by name run in any
stage except the executor, and no longer adds pull request context to the brief.
The run transcript browser fixture runs a developer as the executor.
* fix(agents): let a run complete without input it may no longer act on
Completing a working run now applies the subject's policy to its undelivered
input, marking what the run may no longer act on handled instead of holding
completion open, and the run's own view lists only what it may act on. The
runner completes again rather than starting a turn with an empty prompt when
input it was told is pending never arrives. Studio treats a reply to an agent's
comment like a mention of it.
* docs: add Northstar capabilities walkthrough and update Studio flow
* docs: show authorization results and simplify workflow guidance
* docs: align quick-start prompt with the demonstrated business pages
* docs: link account and session management from authentication overview
* docs: use current blue sign-in screenshot in authentication overview
* docs: align sign-in page reference with updated overview
* docs: present password sign-in before login customization
* docs: explain business needs before capability prompts
* docs: describe general capability needs and emphasize example outcomes
* docs: remove duplicate account result emphasis
* feat(studio): show agent work on issue boards and tables
* test(studio): sync work status contracts and stabilize key rotation
---------
Co-authored-by: Zhou <1267426+zhouyanliang@users.noreply.github.com>