Skip to content

DRU-665 -- Take the page, route, and agent boilerplate out of apps - #744

Merged
czpython merged 1 commit into
mainfrom
commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps
Sep 27, 2026
Merged

czpython merged 1 commit into
mainfrom
commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps

Conversation

@czpython

@czpython czpython commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Apps stop repeating what the platform can do for them.

Pages

  • ui.SubjectStatus(subject, working="auditing") shows where the work on one subject stands. The page endpoint reads the status of every subject on the page in one query, whatever their types, and hands it to the page's serialization. Neither value takes run facts from the author. The shell writes the word: "needs you", the state of a run that stopped with its message, the working word, or "idle".
  • ui.GateControls(subject) takes the subject instead of a run id. The shell shows nothing while the subject waits on nothing.
  • Table.empty takes an EmptyState, like Cards.empty. It replaces Table.empty_text.
  • TimeValue.when can be empty, and empty is the word the shell shows for it.
  • Link.arguments takes numbers. A link on a value takes the value's words, so it needs no label. A link that stands on its own still needs one.
  • The shell links every page that follows one subject to that subject's timeline.
  • ScopedService.connect_url is where an operator connects the service. The provider sends them back to the app.

Routes

  • Druks prefixes every app operation id with the app name in the OpenAPI document, not only the agent ones. An app writes the bare verb. Boot refuses an id that already starts with the app name. Software Factory's start route now declares start, and its tool is still software_factory_start.

Agents and workspaces

  • Agent(include_mcp=False) resolves no MCP server for the call. Its harness gets none, and its sandbox gets no server entry.
  • Workspace.get_env() adds environment variables to every agent call.

Imports and CLI

  • druks.services exports Connection, and druks.workflows exports GateTimeout.
  • druks check-app <name> loads one installed app and checks its subjects, pages, operations, and routers. It needs no database and no configured install.

Apps change three things when they upgrade: GateControls(run) becomes GateControls(subject), Table(empty_text=...) becomes Table(empty=EmptyState(...)), and an operation id that repeats the app name fails at boot.

@mintlify

mintlify Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
druks 🟢 Ready View Preview Sep 27, 2026, 7:59 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@czpython
czpython force-pushed the commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps branch from 6fedb4a to 2d4d37b Compare September 27, 2026 19:01
@czpython
czpython force-pushed the commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps branch from 2d4d37b to edfbcc9 Compare September 27, 2026 19:27
@czpython
czpython force-pushed the commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps branch from edfbcc9 to 8f6c1cb Compare September 27, 2026 19:43
@czpython
czpython force-pushed the commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps branch from 8f6c1cb to ca36c51 Compare September 27, 2026 19:47
@czpython
czpython force-pushed the commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps branch from ca36c51 to e933750 Compare September 27, 2026 19:59
@czpython
czpython enabled auto-merge (squash) September 27, 2026 20:02
@czpython
czpython disabled auto-merge September 27, 2026 20:02
@czpython
czpython enabled auto-merge (squash) September 27, 2026 20:02
@czpython
czpython merged commit beed0ba into main Sep 27, 2026
4 checks passed
@czpython
czpython deleted the commonzenpython/dru-665-take-the-page-route-and-agent-boilerplate-out-of-apps branch September 27, 2026 20:04

This branch was successfully deployed

1 active deployment
staging - docs — e9337505 Deployed Sep 27, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant