Workflows
Agent-Up is designed to support a complete AI validation workflow.
Modify Code
↓
Restart Workspace
↓
Wait Until Healthy
↓
Inspect Page
↓
Navigate
↓
Interact
↓
Validate
↓
Take Screenshot
↓
Generate Playwright Test
↓
Commit
No External Browser Harness
No browser automation framework should be required outside Agent-Up for routine validation.
AI agents should use the Server's MCP capabilities to inspect, navigate, interact, validate, screenshot, retrieve diagnostics, and export generated Playwright tests.
Shared Human and Agent Context
Because humans and AI agents share the same browser session inside a workspace, validation can reuse authentication and application state instead of recreating it in a separate test browser.
Continuous Integration
GitHub Actions runs the Agent-Up CI workflow on push. The version job uses semantic-release in dry-run mode on main, so it needs contents: write permission for semantic-release's repository push permission check even though it does not publish the release itself.
Ubuntu .NET CI is four jobs after version: payloads, tests, GUI tests, and coverage. Native package jobs wait on all four plus version. The payload job is the only .NET job that uploads GitHub Actions artifacts; it publishes reusable .NET payloads for native package jobs. The test job runs every *Tests.csproj except AgentUp.Tests in deterministic path order, writes results to a directory per test project, and publishes TRX test results even when a suite fails. The GUI test job installs only the runtime WebKitGTK package needed by the native display tests, retries browser-test dependency downloads and repairs interrupted apt package state between install attempts, then runs AgentUp.Tests (native-display, then HeadlessE2E). The native-display AgentUp.Tests project may retry once on Ubuntu, but failed attempts must preserve the failing test process exit code so aborted WebView runs cannot be reported as successful.
The coverage job collects Cobertura coverage through coverlet.runsettings by running the non-GUI test projects itself, verifies that each directory contains a Cobertura report, and explicitly uploads those reports to Codecov with a distinct test-project flag; this preserves which test module contributed coverage to each instrumented production project. The same runsettings file sets a 30-second default NUnit test timeout and a 1-minute testhost hang abort. The GUI test job uploads AgentUp.Tests coverage under the agentup-tests flag after Test Report. Patch coverage is enforced in the coverage job, so a coverage miss cannot hide the TRX results already published by the test jobs. Native release runners download those payloads, run platform packaging and smoke validation, and avoid restoring, building, or broadly testing product .NET projects.
When the main release job publishes a new semantic-release version, it uses that same version for @agent-up/audit, tests the package, and publishes it publicly to npm. Add an npm automation or granular access token as the NPM_TOKEN repository secret; when the secret is absent, npm publication is skipped without blocking the other release outputs.
The standalone LocalInstaller repository owns the product-neutral installer library CI workflow. It plans versions with semantic-release using localinstaller-v${version} tags, builds and tests localinstaller.sln on Ubuntu, macOS, and Windows, packs only the four LocalInstaller.Core, LocalInstaller.App, LocalInstaller.Packaging, and LocalInstaller.Smoke NuGet packages with the planned LocalInstallerVersion, publishes reusable self-contained sample product payloads, and runs native package smoke against LocalInstaller.Sample.Packager and LocalInstaller.Sample.Smoke on Ubuntu, macOS, and Windows runners. Sample product projects must remain non-packable. On main, when semantic-release finds a new LocalInstaller version, the workflow creates the localinstaller-v* GitHub release with separately labeled NuGet packages and sample native installer artifacts; NuGet publishing runs only when NUGET_API_KEY is configured.
Local verification for changes that affect packaged Desktop, InstallerApp, installed app layout, browser/WebView hosting, or CI payload staging must include the same native-display AgentUp.Tests command shape used by CI: Release configuration, coverlet.runsettings, TRX logging, coverage collection, and the Ubuntu WebKit/Xvfb environment when running on Linux.