Skip to content

docs: pass dynamic setup choices through run metadata - #967

Merged
dmichelin merged 10 commits into
mainfrom
factory/dynamic-setup-metadata
Oct 29, 2026
Merged

dmichelin merged 10 commits into
mainfrom
factory/dynamic-setup-metadata

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

What this feature does

Run metadata lets a foreman pass task-specific initialization choices to an existing implementation agent without duplicating its execution configuration. The recipe selects a backend or frontend setup profile through your own script, with separate instructions for per-run setup and pre-warmed task-time initialization. No production deployment date or minimum client version is asserted.

Summary

Adds Select a setup profile for each task below Dispatch a configured agent, plus discovery links from environment setup and orchestration. Documents string-only metadata, batch defaults, per-child overrides, inherited keys, normalization collisions, and credential boundaries. No new page, factory YAML field, runner, or environment is introduced.

Content design plan

  • Reader and job: A factory author needs the foreman to select a task-specific setup profile for an existing implementation agent.
  • Gap today: Configured-agent dispatch is documented, but selecting initialization inputs through run metadata is not.
  • Change: Add one recipe and two cross-links. Preserve the existing procedural page and configuration; exclude general metadata filtering/API reference and new factory configuration fields.

Verification

  • npm run typecheck — passed, 0 errors.
  • npm run test:heading-vars — passed, 5 tests.
  • npm run build — passed, 401 pages.
  • npm run test:heading-tocs — passed, 3,393 TOC entries across 401 pages.
  • npm run test:homepage-json-ld — passed.
  • python3 .agents/skills/style_lint/style_lint.py --changed --output /tmp/dynamic-setup-ste-style.json — scanned all 3 changed files; one unchanged warning for bold “Runs” in the orchestration page; no new warnings.
  • python3 .agents/skills/check_for_broken_links/check_links.py --internal-only — passed, 4,497 internal links, 0 broken.
  • python3 .agents/skills/doc_quality_policy/check_compression_contract.py PATH --content-type feature-doc — passed separately for all 3 changed pages.
  • Extracted Bash example: bash -n passed; both allowed profiles were forwarded exactly once; unset, empty, unknown, shell-injection-shaped, and space-containing inputs failed without invoking the installer; installer exit 23 propagated. Parsed the JSON and checked remote: {}, configured-agent UID selection, and string metadata without execution overrides.
  • git diff --check — passed. Full-diff and deletion-only editorial passes completed; no comment lines added.
  • Linux Chromium against the rebuilt static site: recipe anchor/TOC, Bash and JSON rendering, setup timing, foreman instructions, metadata rules, and both discovery links inspected. Five fresh captures below; no content overflow or clipping.
  • trunk check and trunk fmt — unavailable (trunk: command not found).

STE validation

Reviewed the complete added narrative against ASD-STE100 Issue 9 (2025-01-15), including the official dictionary.

  • Scope: both headings, the full recipe and metadata reference, the natural-language foreman instructions, and both discovery paragraphs. Bash and JSON examples are byte-for-byte unchanged.

  • Sentence and paragraph audit: 57 sentences; maximum 16 words under rules 8.4, 8.6, and 8.7; maximum four sentences per paragraph. This is below both the 20-word procedural limit and 25-word descriptive limit. Instructions use imperatives, one instruction per sentence, and conditions before commands. Checked active voice, permitted verb forms, articles, contractions, noun groups, and consistent terminology.

  • Vocabulary: manually checked ordinary words for approved meaning, part of speech, and form. Removed unapproved ordinary uses such as “another,” “anyone,” “instead of,” and “actions.” Retained specific computer-science technical nouns under rule 1.5, category 19: agents, runs, setup profiles, build targets, metadata and string fields, scripts, sandboxes, execution configuration, credentials, and environment variables. The technical verbs run and install and participial adjectives from configure, host, and pre-warm use rule 1.12, category 2, and rule 1.13.

  • Limits: this is a manual rules-and-dictionary review, not ASD approval or an independently certified conformance result. Technical terms, identifiers, and the unchanged Bash/JSON literals remain technical content; existing adjacent page prose is outside this revision's scope.

  • For the full STE rewrite, ran the complete repository test sequence and checks above, plus python3 /tmp/check-setup-ste.py and python3 /tmp/check-generic-setup-example.py. Both verification-only scripts passed and are not committed. Reviewed the full diff and completed the deletion-only editorial pass; no comment lines added.

  • UI-claim correction: deleted only “The run details show the metadata.” The Metadata panel enumerates selected fields, not arbitrary setup_profile metadata (RunMetadataPanel.tsx:471–580; RunDetailSidePane.tsx:192–200). Kept the three access/security sentences unchanged. Re-ran npm run build (401 pages), npm run test:heading-tocs (3,393 entries), npm run test:homepage-json-ld, changed-file style lint, affected-page compression, the STE audit, and whitespace checks; passed with only the unchanged “Runs” style warning. Linux Chromium verified and captured the corrected paragraph. Other checks from the full rewrite carry forward; Bash/JSON remain unchanged.

  • Introduction expansion: replaced only the opening paragraph with three conceptual paragraphs (107 words, eight sentences). Defined the per-run string inputs, foreman/child relationship, reuse of execution configuration, WARP_METADATA_* delivery before ordinary setup, script-owned test/build choices, and the non-automatic installation boundary; then introduced backend/frontend as the setup example. A byte comparison confirms the procedure, precise limits, timing/pre-warming/security guidance, and Bash/JSON are unchanged. Manually checked new vocabulary against Issue 9: input, set, group, test, and example use approved noun meanings; build target is a computer-science technical noun and install is a computer-process technical verb. Re-ran the STE audit (57 sentences, maximum 16 words, maximum four sentences per paragraph), changed-file style lint, affected-page compression, whitespace, npm run build (401 pages), npm run test:heading-tocs (3,393 entries), and npm run test:homepage-json-ld. These checks passed; style lint reported its existing “Runs” warning. A fresh Chromium inspection showed all three introductory paragraphs and their transition to step 1 without clipping. Other full-rewrite checks carry forward unchanged. Reviewed the intro-only delta and completed the deletion-only editorial pass; no comment lines added.

Source verification and editorial verdict

Behavior checked against warp-server revision 1084f366e3a599bbe6189fe454f1a12d8cbf1866 and public client revision 5a55a2aca77339ad75637bed650352369ee7fcb9. The server rollout helper was run; its off-production co-occurrence was inspected and gates unrelated repository behavior, not metadata projection. This is source verification, not an independent production deployment or end-to-end run check.

Availability evidence: On 2026-10-29 at 18:00Z, requester Dan Michelin replied “yes” in Slack to: “Before publication, can engineering confirm per-child metadata and WARP_METADATA_* injection are live on hosted/self-hosted runs, including any required flags or version limits?” This confirms availability in the requested hosted/self-hosted scope. No minimum version or flag specifics were supplied; this is not a live test or general engineering approval.

The metadata recipe stays with configured-agent dispatch; environment setup and orchestration link to it rather than repeat the rules. A source-discovered timing exception is retained beside the setup command: pre-warmed initial setup has no run metadata, assignment supplies the runtime environment without rerunning setup, so the child must initialize before development on that path. The example does not imply metadata automatically installs profiles or that your scripts ship with Warp. No supported cold-path override is invented.

Unverified claims

  • Live production end-to-end behavior and the deployed worker/client combination were not exercised. No deployment date, stable client release, or minimum worker version is claimed.

Documentation risk

Risk: engineering-review-required
Rationale: Adds orchestration tool arguments, a Bash setup example, environment-variable behavior, limits, and a pre-warmed timing distinction.
Source files consulted: warp-server: model/types/metadata_env.go; logic/ai/ambient_agents/{metadata.go,workers/common/task_utils.go,workers/selfhosted/websocket.go,prewarmed/assignment.go,prewarmed.go}; logic/ai/multi_agent/utils/output/tool_call/shared/run_agents.go. warp: app/src/ai/{blocklist/action_model/execute/run_agents.rs,agent_sdk/driver/prewarmed.rs}. Revisions recorded above.
Requested engineering reviewers: none — source ownership resolves to multiple engineers; no single owner selected
Engineering review status: pending
Docs override: none

Visual verification

The final two screenshots, labelled “Current expanded STE introduction”, show the introduction at a478e7ce29580b35318da791d9f27eb573a313ae. The earlier STE recipe/selector screenshot contains the old introduction and is historical. For unchanged content, the STE setup/foreman and discovery captures remain applicable, as does the corrected metadata-reference capture ending “all legible”. The earlier STE metadata-reference capture and all pre-STE captures are historical and superseded, even where their captions say “Current”. These are static documentation captures, not live hosted/self-hosted execution.

Co-Authored-By: Oz oz-agent@warp.dev

Computer-use screenshots (10)

Current heading-label revision: "Metadata limits and behavior" heading after the batch metadata paragraph with all five bullets visible; supersedes earlier Requirements-heading and headingless-list captures.
Current heading-label revision: "Metadata limits and behavior" heading after the batch metadata paragraph with all five bullets visible; supersedes earlier Requirements-heading and headingless-list captures.

Current STE rewrite: "Select a setup profile for each task" heading and select-profile.sh Bash selector block
Current STE rewrite: "Select a setup profile for each task" heading and select-profile.sh Bash selector block

Current STE rewrite: setup timing/pre-warmed sandbox text and the natural-language foreman instruction example
Current STE rewrite: setup timing/pre-warmed sandbox text and the natural-language foreman instruction example

Current STE rewrite: metadata precedence, limits, environment variable, security and local-run statements through Related pages
Current STE rewrite: metadata precedence, limits, environment variable, security and local-run statements through Related pages

Current STE rewrite: environment discovery paragraph after Environment design and best practices, with link destination in status bar
Current STE rewrite: environment discovery paragraph after Environment design and best practices, with link destination in status bar

Current STE rewrite: orchestration discovery paragraph in Before you start, with link destination in status bar
Current STE rewrite: orchestration discovery paragraph in Before you start, with link destination in status bar

Current STE correction: metadata reference and security guidance — Metadata limits and environment variables list, security paragraph, and Related pages boundary
Current STE correction: metadata reference and security guidance — Metadata limits and environment variables list, security paragraph, and Related pages boundary

Current STE correction: metadata reference and security guidance — full metadata precedence paragraph, "Metadata limits and environment variables" list, security paragraph, and Related pages boundary, all legible
Current STE correction: metadata reference and security guidance — full metadata precedence paragraph, "Metadata limits and environment variables" list, security paragraph, and Related pages boundary, all legible

Current expanded STE introduction
Current expanded STE introduction

Current expanded STE introduction
Current expanded STE introduction

warp-agent-staging Bot and others added 2 commits October 29, 2026 17:09
Add a configured-agent recipe and environment/orchestration cross-links. Distinguish per-run setup from pre-warmed task-time initialization, and document bounded string inputs and namespace safety.

Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
@vercel

vercel Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs Ready Ready Preview Oct 29, 2026 10:50pm UTC

Request Review

@cla-bot cla-bot Bot added the cla-signed label Oct 29, 2026
@warp-agent-staging warp-agent-staging Bot added factory:docs-factory Label associated to the "docs-factory" factory warpy-factory Opened by the Warp factory agents labels Oct 29, 2026
@warp-agent-staging

Copy link
Copy Markdown
Contributor Author

This PR was generated with Warp.

Comment @warp-staging-factory on this PR to send it follow-up work.

View run View conversation View on Slack

@warp-agent-staging warp-agent-staging Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

Adds a dynamic setup recipe and discovery links. Publishing needs engineering confirmation of production availability.

Verdict

Checks: build pass, tests pass, CI green, visual proof present

Found: 0 critical, 1 important, 0 suggestions, 0 nits

Responding as Docs Factory (V2): Open session · View in factory

Use backend and frontend setup profiles in the metadata recipe while preserving configured-agent dispatch, validation, and setup timing guidance.

Co-Authored-By: Oz <oz-agent@warp.dev>
Replace framing and bold taxonomy with direct instructions while retaining metadata limits, precedence, security boundaries, and setup timing.

Co-Authored-By: Oz <oz-agent@warp.dev>
Add a Requirements subheading above the existing metadata bullets.

Co-Authored-By: Oz <oz-agent@warp.dev>
Rename the H4 to Metadata limits and behavior without changing its contents.

Co-Authored-By: Oz <oz-agent@warp.dev>
Rewrite the full recipe, foreman example, and both discovery links with short active sentences and dictionary-checked ordinary vocabulary. Preserve setup timing, metadata rules, and the executable examples.

Co-Authored-By: Oz <oz-agent@warp.dev>
Keep the metadata access and credential guidance without implying that the run details UI renders arbitrary metadata.

Co-Authored-By: Oz <oz-agent@warp.dev>
Define string inputs and the foreman's role, explain environment-variable delivery and script consumption, and separate metadata from the operations scripts perform. Keep the recipe and reference unchanged.

Co-Authored-By: Oz <oz-agent@warp.dev>
@dmichelin
dmichelin marked this pull request as ready for review October 29, 2026 22:47
@warp-agent-staging

Copy link
Copy Markdown
Contributor Author

@dmichelin, your GitHub account is not connected to Warp. Connect your GitHub account.

@dmichelin
dmichelin merged commit 232cf27 into main Oct 29, 2026
11 of 12 checks passed
@dmichelin
dmichelin deleted the factory/dynamic-setup-metadata branch October 29, 2026 23:34

This branch was successfully deployed

1 active deployment
Preview — fec1a8a1 Deployed Oct 29, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed factory:docs-factory Label associated to the "docs-factory" factory warpy-factory Opened by the Warp factory agents

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant