Repository navigation
The consoles on Loom and Graphite, artifacts, providers and engines, chat context - #62
Open
Zarathos94 wants to merge 17 commits into
Open
Zarathos94 wants to merge 17 commits into
Zarathos94 wants to merge 17 commits into
Conversation
…gine
On a Mac the hub's own machine has not reported its facts, so GET /v1/fleet
sends null for its kind, arch, OS, backend, CPU and sizes. The engine read
those fields as plain strings and numbers, refused the whole fleet ("invalid
type: null, expected a string"), and the Machines view fell back to "3D needs
WebGPU or WebGL2" in a browser that has both; the desktop's 3D had no fleet
either, as it reads the same types.
- apz-engine: every fleet field reads null as its default.
- Web: a feed the engine refuses is logged and skipped (the engine keeps the
last one); a start that fails for another reason than a missing adapter
says that reason instead of blaming the browser.
- Web: a WebGPU that is there but does not start (its device or surface
fails) is retried on WebGL2, on a fresh canvas in the old one's place.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng, files
- Modes: a project is in build (the default) or maintenance, one table
(projects::MODES). POST /v1/projects/{id}/mode; back in build a delivered
project reopens at implementation. A delivered project in maintenance stays
worked: its members, its budget and the owner's picks as tasks.
- Maintenance (maintenance.rs): a project's signals (the owner's, a public
ingest address whose token is kept as its hash, and agents' digests of the
project's connectors and MCP servers), the map of the product, and the
proposals: what would change, who it touches, risk, value 1-5 and why,
size, evidence and acceptance; instruments when data is missing. Sweeps run
on a schedule, on entering maintenance, or when the owner asks, by the
project's agents in turn, with the focus, the new signals, the map, the
waiting proposals and the declines' reasons. The owner's Do it posts a task
of the project; Later and No (with a reason) are the others. Agents cannot
post tasks to a project in maintenance (law T-024).
- Environments (environments.rs): kinds, tracks (main, releases, by hand),
variables, secrets in the vault (project:<id>.<env>), deploys through a
deploy hook; tracked ones deploy after a landing or a signed release; a
protected one waits for the owner as a `deploy` approval. plaza_deploy for
the delivery roles (law T-025).
- Adopting a project that exists (adopt.rs): from a granted platform
repository, a public git URL, a folder on the hub, or nothing yet; opened
delivered and in maintenance by default, with its environments.
- Files: uploads into Weft by hash and one owner change for many files
(project_files.rs); the owner's attachments on chats, conversations and
steers, readable by the agent the message goes to.
- The vault takes project:<id>.<env> bindings. OpenAPI blessed again.
- Tested end to end on a scratch hub with Weft (tests/maintenance.rs).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…adopting, dropped files Web: - A Mode button on the project page; a Maintenance tab: what waits for the owner, the product map as an animated graph (areas by health, their links, the waiting proposals beside their area), an area or proposal opened beside it, the proposals ranked with Do it, Later and No, the inbox, the ingest address, what the watchers read; Expert for every field and the decisions. - An Environments tab: each environment with what it runs and what was deployed, deploy, edit, secrets and the deploy hook. - The New project dialog brings in a project that exists (a platform's repository, a git address, a folder on the hub, or files), and takes files for a new project; a project's Add files card takes dropped or picked files and folders (ui/file-drop.ts). - The chat composers (IDE chat, conversations, agent page, overview) take dropped, pasted or picked attachments. Desktop: the same tabs and Mode chooser, the adopt form, Add files (picker and window drops), and attachments in the IDE composers. CLI: agentplaza projects mode|modes|adopt|maintenance|env|upload, and chat --attach. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs/guide/projects-after-launch.md (modes, maintenance, environments, bringing a project in, files and attachments), the architecture's rows, a README bullet, and api-tests/bruno/projects-life. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Zarathos94
force-pushed
the
feat/project-modes
branch
from
October 19, 2026 22:04
ed537d7 to
bd2df75
Compare
… on the web Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, chat context
The web console and the desktop app now draw every screen in the Loom/Graphite look (the shell, the kit, the
screens, dialogs and the shader backdrop), 1:1 between the two. HTML artifacts run in their sandboxed frame from
the hub content origin (the console page now allows it as a frame source).
Providers and models: API provider instances gain a label, an accent and an on/off switch; coding engines are
instances too (the built-in ones, ACP registry agents and local ACP commands), each version pinned to its npm
integrity, PyPI or archive sha256 when saved, with Update all as a dry run first. The hub checks every provider
and engine in the background (health_interval_s) and publishes the results. Usage providers read a CLIProxyAPI
hub (its management key stays in the vault); favourites go first in the model pickers. No key ever enters an
engine: engines run in agent VMs and reach models only through the gateway, and the VM honours the pinned
launch spec the hub sends with each code_engine call.
Chats choose their model and effort, and show a context bar: the latest call against the model window, split by
context part, with the tool calls of the work item (GET /v1/agents/{cid}/context and the owner-conversation
variant; a context event keeps the bars live). Web, desktop and the TUI draw the same.
The Claude engines use the Claude mark. Docs: providers guide, themes, artifacts, parity, the OpenAPI spec,
README screenshots.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README: a hero and six feature cards (animated SVG, light and dark), a "See it run" section with the desktop app recorded (the orchestrator chat, Machines in 3D, Models) and `agentplaza tui` recorded as animated SVG (a tour, a message to the orchestrator streaming its answer, Models with a favourite). scripts/readme/ makes all of it: gen-art.mjs (the art), desktop-rec.py (the desktop app on a private Xvfb display), tui-*.json with the TUI recorder, tui-font.py (embeds a Plex Mono subset). The terminal UI: a Loom palette (truecolour, 16 colours, NO_COLOR) and an animation clock; a branded header with a live dot and spinners, a tab bar that keeps the active tab in view, a status line with a mode chip and hints that fit, toasts; rounded panels, status dots and selected rows on every screen, stat tiles on the overview, which now polls the approvals; chat with role gutters, tool lines, a streaming cursor and a thinking shimmer; a context bar in eighth blocks that warns over 80% and 92%; providers grouped into API and engines; a Ctrl+K command palette; the welcome and the tour as animated cards. APZ_TUI_RECORD=<script.json> records the TUI as an animated SVG, with box drawing as geometry. In the desktop app, APZ_RECORDING hides the software-rendering banner on virtual displays. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Zarathos94
force-pushed
the
feat/themes-artifacts
branch
from
October 19, 2026 22:10
05eebb4 to
2c0ac04
Compare
…s-artifacts # Conflicts: # apps/desktop/src/console/new_project.rs # apps/desktop/src/console/screens/ide_chat.rs # apps/desktop/src/console/screens/ide_conversation.rs # apps/desktop/src/console/screens/ide_panels.rs # apps/desktop/src/console/screens/project_environments.rs # apps/desktop/src/console/screens/project_maintenance.rs # apps/desktop/src/console/screens/projects.rs # apps/web/src/store.ts # apps/web/src/styles/file-drop.css # apps/web/src/styles/ide-chat.css # apps/web/src/styles/ide-conversation.css # apps/web/src/styles/projects.css # apps/web/src/ui/new-project.ts # apps/web/src/views/agent-detail.ts # apps/web/src/views/ide-chat.ts # apps/web/src/views/ide-conversation.ts # apps/web/src/views/overview.ts # apps/web/src/views/project-environments.ts # apps/web/src/views/project-maintenance.ts # apps/web/src/views/projects.ts # apps/web/test/environments-tests.ts # apps/web/test/tests.ts # crates/apid/src/agents.rs # crates/apid/src/approvals.rs # crates/apid/src/main.rs # crates/apid/src/tools.rs # crates/jhrl/specs/laws/tools.jhrl
Zarathos94
marked this pull request as ready for review
October 20, 2026 08:54
Zarathos94
marked this pull request as draft
October 20, 2026 08:55
Zarathos94
marked this pull request as ready for review
October 20, 2026 08:55
Contributor
Tests: failed
Failures Linux x86_64: `apid::weft_review a_code_task_and_a_research_brief_go_from_claim_to_landed_through_the_review_graph`Windows x64: `apid::weft_review a_code_task_and_a_research_brief_go_from_claim_to_landed_through_the_review_graph` |
Contributor
Contributor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…for CRLF and the port error
- Archiving a project withdrew only its open tasks. A task an agent was working on is still claimed right after
its agents are released (its work is only cancelled), so its escrow stayed out of both the project's budget and
the plaza's. It is withdrawn too now; the agent's late answer finds the task ended, which settle_task ignores.
- apz-theme's generated-file check compares content: a Windows checkout holds the JSON with CRLF endings.
- owner_token_log retries when Windows says a port is taken ("os error 10048"), as it does for "in use".
- The drafts test prints the hub's log when the spawned agent does not claim its task in time.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…erde_json preserve_order) writes the same file Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hub's naming ask is not queued ahead of it On a slow runner the hub asks an unnamed agent for its name (two seconds after it connects) before the work a test waits for, and a fake agent never answers: Windows saw the maintenance builder hold only that ask. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 10 s for a first Weft parse Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Hub API (Bruno): passed244/244 API requests pass · 158/575 operations tested · 17 fuzzing findings (reported, they do not fail the pull request) |
When a step's work item ends without a verdict the hub gives the step a new work item; the old one has no step and review_tree says so. On a slow Windows runner that happened while the test still held the old item. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xport count The export records where it began (the imported commit) before it pushes, so the count reaches 1 while the push is still going; a busy runner read the remote first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Patch releases of the wasmtime family that Weft's language packs run on: a panic lowering a host-created component stream, and a Cranelift aarch64 br_table miscompile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he maintenance chat waits 15 s Each apid integration test starts a hub, Weft and fake daemons and plays several agents through a flow; on a runner busy with 4000 tests, weft_review ran past the 2-minute kill and a chat took over 5 s to reach the builder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Stacked on #61 (
feat/project-modes), which is stacked on #60 (feat/weft). Merge bottom-up.The look: Loom and Graphite, on the web and the desktop
apz-theme(skins, palettes, backgrounds, VS Code theme import) and the shared tokens; the old look and its CSS are gone.ui/components.ts) and every screen ported to the prototype markup.console/ui.rs: cards, chips, buttons, tabs, inputs, dialogs viaui::modal), the shell and every screen redrawn to match the web, with capture hooks (APZ_WIZARD,APZ_ARTIFACT,APZ_ONBOARD=<step>…).backdrop.wgsl, CPU twin for WebGL2): drifting fields, Loom dots, Graphite grid, grain.Artifacts and sharing
apz-viewbodies (charts, tiles, tables, graphs, datasets, code, HTML), shares through the hub and agentplaza.io/artifact/{id}.Providers & models
/v1/engines): the built-in ones, ACP registry agents (/v1/acp/registry) and local ACP commands. Versions are pinned when saved (npm integrity, PyPI or archive sha256); Update all runs a dry run first. The VM honours the launch spec the hub sends with eachcode_enginecall (ToolDecision.engine).health_interval_s(0 turns them off), published asproviders.health/engines.health.agentplaza models ….Chats
model; one message:modelon the chat call).GET /v1/agents/{cid}/context,GET /v1/owner/conversations/{id}/context, live through thecontextevent). Web, desktop and TUI.The README and the terminal UI
agentplaza tuirecorded as animated SVG (a tour, a message to the orchestrator streaming its answer, Models with a favourite).scripts/readme/makes all of it.NO_COLOR) and an animation clock; a header with a live dot and spinners, a tab bar that keeps the active tab in view, a status line with a mode chip and hints that fit, toasts; rounded panels, status dots and selected rows on every screen, stat tiles on the overview; chat with role gutters, tool lines, a streaming cursor and a thinking shimmer; a context bar that warns over 80% and 92%; a Ctrl+K command palette; the welcome and the tour as animated cards.APZ_TUI_RECORD=<script.json>records the TUI as an animated SVG; the desktop app'sAPZ_RECORDINGhides the software-rendering banner on virtual displays.Checks run locally
cargo fmt --all -- --check,cargo clippy --workspace --all-targets --locked -D warnings,cargo test --workspace(all pass), webtsc,node test/run.mjs, the web build; the staged set verified in a clean worktree.cargo test -p agentplaza-cli(408) and clippy in a clean worktree.🤖 Generated with Claude Code