feat(remix_agent): add headless agent workflow surfaces - #183
Draft
leoafarias wants to merge 11 commits into
Draft
feat(remix_agent): add headless agent workflow surfaces#183leoafarias wants to merge 11 commits into
leoafarias wants to merge 11 commits into
Conversation
Conversation, permission, and progress surfaces with host-owned chrome. Enter/IME/send-stop, live-edge follow, and collapse-when-complete are package contracts. remix and remix_fortal public APIs are unchanged.
The open-code review asks to verify the two base-button loading changes separately, because registry work does not make them implicit. RemixIconButton already had a case for the live-region announcement. RemixButton had none. Add it, and add the excludeSemantics case to both, which is the branch that suppresses the announcement. Both use `pump` rather than `pumpAndSettle`: the loading spinner animates forever, so settling never returns.
…mposer The open-code review puts one gate before any Agent registry item: prove one consumer before converting eight surfaces. This is that gate. `open_code/agent_fixture/` is a pre-install application. Its `uiAgentComposerRecipe()` returns the five stylers `AgentComposer` takes, built from the installed card, text-area, and icon-button recipes. It adds only the toolbar row, the card inset, and the field's removed second box. A bundle rather than one `@MixWidget` recipe, because `AgentComposerSpec` holds only the toolbar and cannot carry the other four values. The child stylers stay unresolved, so each control resolves its own hover, focus, and disabled state. `tool/check_agent_consumer.dart` builds a guarded temporary app, installs Theme, Card, TextField, and IconButton with the checkout CLI, and points `remix` and `remix_agent` at this checkout. It then edits the installed IconButton recipe and reruns the suite with the new expected metric, which is what proves Agent's send and stop buttons are painted by the application's file rather than by a copy Agent kept. The checker has no hosted phase. `remix_agent` is `publish_to: none`, so there is no version to resolve, and nothing here claims that hosted installation works.
…split The worksheets still read as a package contract. They are the benchmark the anatomy was read from, and this package resolves none of those values. Say so in each file, rename `non_token_measurements` to `recipe_measurements`, and change every `status` to name what is shipped. Point the composer worksheet at the first proven application recipe. ADR 0001 gains the runtime and recipe split, what the first consumer established, and the two things that stay gated: publication, and the seven surfaces with no proven recipe yet. The README documented the Overlay requirement for a picker only. The requirement is the text field's: `EditableText` asserts on an Overlay ancestor the moment it takes focus, so `AgentComposer` needs one too. The example declared `remix: ^1.0.0-beta.4` while the package declares beta.8. Workspace resolution binds the local sibling either way, so a stale constraint says nothing until someone reads it as the tested version.
`docs/plans/remix-agent*.md` and `packages/remix_agent/docs/open-code-review.md` are working notes, not source or consumer documentation. Remove them and keep ADR 0001 as the surviving record: it already carries the boundary, and it now carries what the first consumer proved and what is still gated. Repoint the README, the eight worksheets, and the consumer checker at the ADR.
Retarget this draft from the first branch in the stack to its tip, so the pull request shows only the Agent change. The tip relocates the registry to `registry/default/` and `registry/fortal/`, adds the Fortal preset, and moves `remix` to 1.0.0-beta.9. Four conflicts, all in shared lists: - `analysis_options.yaml` and `open_code/README.md` now name three consumer fixtures, not two; - `pubspec.yaml` keeps both notes on why the fresh-consumer steps run last; - `skills/using-remix/SKILL.md` keeps the tip's preset rows and the Agent row. `remix_agent` and its example move to the `remix` floor the stack now tests. `tool/check_agent_consumer.dart` needed no change: it installs by item name, never by registry path, and the default preset is what `remix init` selects.
leoafarias
force-pushed
the
leoafarias/remix-agent
branch
from
September 9, 2026 01:10
5d9ed78 to
d81e5b9
Compare
leoafarias
changed the base branch from
feat/open-code
to
feat/open-code-sidebar
September 9, 2026 01:10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add an unpublished
remix_agentpackage with composer, message, transcript, answer, permission, execution, plan, and activity surfaces. They reuse Remix controls and upstream Disclosure, expose empty generated Mix styles, and keep child-control styles unresolved. Include a styled example, behavior tests, and separate loading announcements for Remix Button and IconButton.This is a draft stacked on #177, targeting
feat/open-code. The clean-sheet review and integration plan recommends keeping reusable Agent behavior in the package and distributing application-owned recipes through an optional registry item. Agent registry installation is not implemented yet; runtime publication and compound recipe wiring remain prerequisites.Related Issues
Related to #177. This PR does not require the Sidebar stack.
Checklist
Validation
Full workspace CI, Agent registry consumer verification, and fresh browser/media evidence are not claimed by these results. Keep this PR as a draft while those integration gates remain open.
Breaking Change