@midhunxavier/code-flow 0.0.0-stage → 0.1.0-preview.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +141 -2
- package/bin/codeflow.mjs +8 -0
- package/bin/launcher.mjs +127 -0
- package/dist/remote-host.json +1 -0
- package/licenses/inter.txt +92 -0
- package/licenses/preact.txt +21 -0
- package/licenses/signals-core.txt +21 -0
- package/licenses/signals.txt +21 -0
- package/licenses/typescript-notices.txt +193 -0
- package/licenses/typescript.txt +55 -0
- package/licenses/uqr.txt +22 -0
- package/licenses/xterm-fit.txt +19 -0
- package/licenses/xterm.txt +21 -0
- package/package.json +34 -4
- package/public/assets/changes-62ZIEQSN.js +1 -0
- package/public/assets/chunk-2PZVOKID.js +1 -0
- package/public/assets/chunk-4D5IENEB.js +1 -0
- package/public/assets/chunk-5SARP5MU.js +1 -0
- package/public/assets/chunk-63YLZ3PR.js +1 -0
- package/public/assets/chunk-7FUHKF2M.js +1 -0
- package/public/assets/chunk-APQEVJ2K.js +1 -0
- package/public/assets/chunk-CGOZQMEZ.js +2 -0
- package/public/assets/chunk-J4VYS3KV.js +2 -0
- package/public/assets/chunk-L7TUCIYF.js +1 -0
- package/public/assets/chunk-SIHDWM2Y.js +154 -0
- package/public/assets/chunk-TEJVYIKC.js +1 -0
- package/public/assets/code-browser-VB2HGZSG.js +4 -0
- package/public/assets/filtered-tasks-ES5CP4KV.js +1 -0
- package/public/assets/interactive-browser-7F5ZXRUV.js +7 -0
- package/public/assets/join-project-6RTFHNCA.js +1 -0
- package/public/assets/main-65EW73SB.js +1 -0
- package/public/assets/project-invitations-view-GMPWGWYM.js +1 -0
- package/public/assets/settings-UB5Q4AQM.js +9 -0
- package/public/assets/styles-18792BB4.css +32 -0
- package/public/assets/team-server-wizard-2GLDWS6D.js +8 -0
- package/public/assets/terminal-IWAIM4DE.js +62 -0
- package/public/assets.json +1 -0
- package/public/bundle-meta.json +1 -0
- package/public/docs/.nojekyll +0 -0
- package/public/docs/accessibility.html +19 -0
- package/public/docs/acp-agents.html +117 -0
- package/public/docs/agent-containers.html +79 -0
- package/public/docs/api.html +1130 -0
- package/public/docs/app.js +342 -0
- package/public/docs/application-improvements.html +275 -0
- package/public/docs/architecture-explorer.html +19 -0
- package/public/docs/architecture.html +149 -0
- package/public/docs/auto-team.html +148 -0
- package/public/docs/automations.html +109 -0
- package/public/docs/checkpoint-review.html +37 -0
- package/public/docs/code-hosts.html +35 -0
- package/public/docs/code-intelligence.html +35 -0
- package/public/docs/configuration.html +346 -0
- package/public/docs/context-inspection.html +23 -0
- package/public/docs/coordinated-changes.html +28 -0
- package/public/docs/deferred-runs.html +25 -0
- package/public/docs/dependency-discovery.html +19 -0
- package/public/docs/documentation.html +84 -0
- package/public/docs/dynamic-teams-evaluation.html +174 -0
- package/public/docs/dynamic-teams-implementation-plan.html +882 -0
- package/public/docs/dynamic-teams-implementation-review-1.html +141 -0
- package/public/docs/dynamic-teams-plan-review-0.html +204 -0
- package/public/docs/extensions.html +42 -0
- package/public/docs/external-sources.html +96 -0
- package/public/docs/filesystem-policy.html +26 -0
- package/public/docs/filtered-tasks.html +44 -0
- package/public/docs/font-license.txt +92 -0
- package/public/docs/getting-started.html +143 -0
- package/public/docs/github-review-threads.html +26 -0
- package/public/docs/github.html +157 -0
- package/public/docs/help.html +69 -0
- package/public/docs/index.html +88 -0
- package/public/docs/installation.html +80 -0
- package/public/docs/launch-profiles.html +48 -0
- package/public/docs/maintenance.html +60 -0
- package/public/docs/memory-claims.html +31 -0
- package/public/docs/memory-storage.html +58 -0
- package/public/docs/notifications.html +39 -0
- package/public/docs/patterns.html +195 -0
- package/public/docs/performance-results.html +210 -0
- package/public/docs/performance.html +166 -0
- package/public/docs/project-conventions.html +22 -0
- package/public/docs/project-first-navigation-plan.html +587 -0
- package/public/docs/project-teams-implementation-plan.html +772 -0
- package/public/docs/project-teams.html +129 -0
- package/public/docs/provider-compatibility.html +20 -0
- package/public/docs/releasing.html +65 -0
- package/public/docs/remote-workers.html +64 -0
- package/public/docs/review-inbox.html +26 -0
- package/public/docs/run-storage.html +23 -0
- package/public/docs/runs.html +141 -0
- package/public/docs/search.json +1 -0
- package/public/docs/security.html +133 -0
- package/public/docs/shared-projects.html +31 -0
- package/public/docs/ssh-projects.html +60 -0
- package/public/docs/style.css +768 -0
- package/public/docs/task-reruns.html +30 -0
- package/public/docs/team-collaboration.html +412 -0
- package/public/docs/verification.html +22 -0
- package/public/docs/vscode.html +53 -0
- package/public/docs/worker-permission-verification.html +131 -0
- package/public/index.html +17 -0
- package/scripts/check-node.mjs +7 -0
- package/scripts/codeflow.mjs +55 -0
- package/scripts/computer-use.swift +64 -0
- package/scripts/pty.py +273 -0
- package/src/acp-connections.js +110 -0
- package/src/adapters/acp-presets.js +37 -0
- package/src/adapters/acp-types.js +0 -0
- package/src/adapters/acp.js +328 -0
- package/src/adapters/agent-tools.js +28 -0
- package/src/adapters/agy-auth.js +67 -0
- package/src/adapters/agy-isolation.js +242 -0
- package/src/adapters/agy-tools.js +45 -0
- package/src/adapters/agy.js +326 -0
- package/src/adapters/claude-stream.js +58 -0
- package/src/adapters/claude.js +282 -0
- package/src/adapters/codex-app-server.js +555 -0
- package/src/adapters/codex.js +311 -0
- package/src/adapters/errors.js +57 -0
- package/src/adapters/index.js +91 -0
- package/src/adapters/managed-permissions.js +37 -0
- package/src/adapters/model-discovery.js +100 -0
- package/src/adapters/process.js +433 -0
- package/src/adapters/team-tools.js +103 -0
- package/src/adapters/types.js +0 -0
- package/src/agent-browser.js +688 -0
- package/src/agent-computer.js +88 -0
- package/src/agent-container.js +155 -0
- package/src/agent-team-definitions.js +131 -0
- package/src/agent-tool-client.mjs +79 -0
- package/src/agent-tools.js +296 -0
- package/src/approvals.js +134 -0
- package/src/architecture.js +456 -0
- package/src/assets.js +44 -0
- package/src/automation.js +901 -0
- package/src/browser-files.js +293 -0
- package/src/browser-ownership.js +150 -0
- package/src/certificate-renewal.js +75 -0
- package/src/chat-family.js +25 -0
- package/src/chat-handoff.js +87 -0
- package/src/checkpoint-review.js +72 -0
- package/src/checks.js +303 -0
- package/src/code-host-git.js +102 -0
- package/src/code-hosts-api.js +99 -0
- package/src/code-hosts.js +482 -0
- package/src/code-intelligence-worker.mjs +452 -0
- package/src/code-intelligence.js +141 -0
- package/src/collab/api.js +365 -0
- package/src/collab/checkpoints.js +198 -0
- package/src/collab/connections.js +139 -0
- package/src/collab/host-execution.js +347 -0
- package/src/collab/hub-client.js +210 -0
- package/src/collab/link-api.js +229 -0
- package/src/collab/link.js +595 -0
- package/src/collab/model.js +496 -0
- package/src/collab/runner.js +1014 -0
- package/src/collab/store.js +1452 -0
- package/src/collab/terminals.js +361 -0
- package/src/collaboration-reviews.js +116 -0
- package/src/config.js +48 -0
- package/src/context-budget.js +14 -0
- package/src/context-inspection.js +204 -0
- package/src/context.js +154 -0
- package/src/conventions.js +283 -0
- package/src/coordinated-api.js +247 -0
- package/src/deferred-launch.js +82 -0
- package/src/deferred-runs.js +515 -0
- package/src/dependency-health.js +35 -0
- package/src/diff.js +43 -0
- package/src/docs-help.js +316 -0
- package/src/doctor.js +232 -0
- package/src/documentation-changes.js +20 -0
- package/src/engine.js +5258 -0
- package/src/env.js +44 -0
- package/src/execution-budget.js +8 -0
- package/src/experience.js +50 -0
- package/src/extensions.js +144 -0
- package/src/filesystem-access.js +107 -0
- package/src/filesystem-policy.js +238 -0
- package/src/filtered-task-limits.js +93 -0
- package/src/filtered-tasks-api.js +53 -0
- package/src/filtered-tasks.js +576 -0
- package/src/frame-policy.js +66 -0
- package/src/fs.js +57 -0
- package/src/git.js +626 -0
- package/src/github-review-threads.js +181 -0
- package/src/github.js +538 -0
- package/src/http.js +69 -0
- package/src/improve-settings.js +38 -0
- package/src/improve.js +187 -0
- package/src/integrations.js +373 -0
- package/src/integrity.js +259 -0
- package/src/journey-api.js +77 -0
- package/src/journey-replay.js +65 -0
- package/src/journey-store.js +97 -0
- package/src/journeys.js +60 -0
- package/src/json.js +81 -0
- package/src/launch-profiles.js +292 -0
- package/src/learnings.js +80 -0
- package/src/local-app-url.js +19 -0
- package/src/log.js +39 -0
- package/src/maintenance.js +335 -0
- package/src/memory-analysis.js +182 -0
- package/src/memory-claims.js +153 -0
- package/src/memory-sqlite.js +236 -0
- package/src/memory.js +552 -0
- package/src/merge-validation.js +58 -0
- package/src/model-catalog.js +239 -0
- package/src/model-research.js +91 -0
- package/src/notes.js +176 -0
- package/src/notifications.js +413 -0
- package/src/patterns/auto-team-model.js +230 -0
- package/src/patterns/auto-team.js +816 -0
- package/src/patterns/council.js +199 -0
- package/src/patterns/debate.js +188 -0
- package/src/patterns/findings.js +141 -0
- package/src/patterns/index.js +21 -0
- package/src/patterns/loop.js +158 -0
- package/src/patterns/pipeline.js +125 -0
- package/src/patterns/prompts.js +181 -0
- package/src/patterns/race.js +147 -0
- package/src/patterns/schemas.js +40 -0
- package/src/patterns/solo.js +46 -0
- package/src/patterns/supervisor.js +235 -0
- package/src/patterns/task-draft.js +29 -0
- package/src/patterns/task-review.js +45 -0
- package/src/patterns/tdd.js +231 -0
- package/src/patterns/team-strategies.js +67 -0
- package/src/performance.js +43 -0
- package/src/persistence-status.js +35 -0
- package/src/phone-sessions.js +96 -0
- package/src/preview-overlay.js +392 -0
- package/src/preview.js +230 -0
- package/src/privacy.js +23 -0
- package/src/project-report.js +22 -0
- package/src/project-team-budget.js +22 -0
- package/src/project-team-model.js +225 -0
- package/src/project-team-policy.js +42 -0
- package/src/project-team-store.js +234 -0
- package/src/project-team-usage.js +24 -0
- package/src/project-teams-api.js +43 -0
- package/src/project-teams.js +644 -0
- package/src/projects.js +290 -0
- package/src/provider-eligibility.js +9 -0
- package/src/readiness.js +98 -0
- package/src/remote-tls.js +66 -0
- package/src/remote-workers/bundles.js +198 -0
- package/src/remote-workers/client.js +332 -0
- package/src/remote-workers/durability.js +37 -0
- package/src/remote-workers/protocol.js +68 -0
- package/src/remote-workers/stdio.js +138 -0
- package/src/remote-workers/worker.js +304 -0
- package/src/remote.js +204 -0
- package/src/repo-config.js +201 -0
- package/src/repo-coordination.js +725 -0
- package/src/repo-tree.js +106 -0
- package/src/repository-identity.js +13 -0
- package/src/retention-policy.js +466 -0
- package/src/review-inbox.js +38 -0
- package/src/routing.js +49 -0
- package/src/run-analysis.js +111 -0
- package/src/run-cold-store.js +231 -0
- package/src/run-environment.js +15 -0
- package/src/run-history.js +91 -0
- package/src/run-log.js +160 -0
- package/src/run-permissions.js +111 -0
- package/src/run-projection.js +77 -0
- package/src/run-recovery.js +53 -0
- package/src/run-status.js +56 -0
- package/src/serve.js +138 -0
- package/src/server.js +2871 -0
- package/src/shared-access.js +103 -0
- package/src/shared-accounts.js +381 -0
- package/src/shared-api.js +239 -0
- package/src/shell.js +346 -0
- package/src/ship.js +344 -0
- package/src/slots.js +74 -0
- package/src/snapshot.js +388 -0
- package/src/source-context.js +17 -0
- package/src/sse-writer.js +70 -0
- package/src/ssh-projects/bootstrap.mjs +95 -0
- package/src/ssh-projects/config.js +45 -0
- package/src/ssh-projects/gateway.js +143 -0
- package/src/ssh-projects/manager.js +320 -0
- package/src/ssh-projects/team-autostart.mjs +93 -0
- package/src/ssh-projects/team-remove.mjs +69 -0
- package/src/ssh-projects/team-status.mjs +39 -0
- package/src/ssh-projects/transport.js +133 -0
- package/src/stats.js +139 -0
- package/src/store.js +544 -0
- package/src/stream.js +91 -0
- package/src/sweeps.js +241 -0
- package/src/tailscale.js +101 -0
- package/src/task-draft.js +23 -0
- package/src/task-team.js +164 -0
- package/src/team-evaluation.js +243 -0
- package/src/team-mailbox.js +160 -0
- package/src/team-memory.js +84 -0
- package/src/team-rerun-graph.js +15 -0
- package/src/team-reruns.js +130 -0
- package/src/team-scheduler.js +121 -0
- package/src/team-steering.js +21 -0
- package/src/team-template-store.js +98 -0
- package/src/team-templates.js +117 -0
- package/src/team-tool-client.mjs +79 -0
- package/src/team-tools.js +235 -0
- package/src/teams.js +0 -0
- package/src/templates.js +62 -0
- package/src/transcript.js +134 -0
- package/src/verification-integrity.js +27 -0
- package/src/verification.js +183 -0
- package/src/watch.js +195 -0
- package/src/work-queue.js +47 -0
- package/src/workflow-control.js +83 -0
- package/src/workspace-api.js +207 -0
- package/src/workspace-changes.js +61 -0
- package/src/workspace.js +146 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="Application improvement program — code-flow guides and reference"><title>Application improvement program · code-flow</title><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMCIgZmlsbD0iIzFlMWYxYSIgc3Ryb2tlPSIjM2Q0MDM2IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8c3ZnIHg9IjE1IiB5PSIxNSIgd2lkdGg9IjM0IiBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2VjZWJlNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGggZD0iTTEyIDNsOSA1LTkgNS05LTV6TTMgMTNsOSA1IDktNU0zIDE3LjVsOSA1IDktNSIvPgogIDwvc3ZnPgo8L3N2Zz4K"><link rel="stylesheet" href="style.css"><script src="app.js" defer></script></head>
|
|
3
|
+
<body data-page="application-improvements"><a class="skip-link" href="#content">Skip to content</a>
|
|
4
|
+
<header class="topbar"><a class="brand" href="index.html"><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMCIgZmlsbD0iIzFlMWYxYSIgc3Ryb2tlPSIjM2Q0MDM2IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8c3ZnIHg9IjE1IiB5PSIxNSIgd2lkdGg9IjM0IiBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2VjZWJlNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGggZD0iTTEyIDNsOSA1LTkgNS05LTV6TTMgMTNsOSA1IDktNU0zIDE3LjVsOSA1IDktNSIvPgogIDwvc3ZnPgo8L3N2Zz4K" width="30" height="30" alt=""><strong>Code Flow</strong><span>Docs</span></a><button class="search-trigger" id="open-search">Search documentation <kbd>⌘ K</kbd></button><div class="top-actions"><a href="https://github.com/midhunxavier/code-flow">GitHub ↗</a><button id="theme" aria-label="Change color theme">Theme</button><button id="open-help" class="primary" hidden aria-expanded="false" aria-controls="help-panel">Ask code-flow</button><button id="menu" aria-label="Toggle documentation navigation" aria-expanded="false" aria-controls="sidebar">☰</button></div></header>
|
|
5
|
+
<div class="layout"><nav class="sidebar" id="sidebar" aria-label="Documentation"><section><h2>Get started</h2><a href="index.html" >Overview</a><a href="installation.html" >Install Code Flow preview</a><a href="getting-started.html" >Getting started</a><a href="patterns.html" >Team patterns</a><a href="acp-agents.html" >ACP coding agents</a><a href="help.html" >Ask code-flow</a></section><section><h2>Work with agents</h2><a href="runs.html" >Runs and workspace</a><a href="auto-team.html" >Team</a><a href="project-teams.html" >Project missions (preview)</a><a href="review-inbox.html" >Review inbox</a><a href="verification.html" >Verification and review</a><a href="github.html" >GitHub, review and shipping</a><a href="github-review-threads.html" >GitHub review threads</a><a href="task-reruns.html" >Selective task reruns</a><a href="deferred-runs.html" >Deferred runs</a></section><section><h2>Your workspace</h2><a href="configuration.html" >Configuration</a><a href="context-inspection.html" >Context and budgets</a><a href="project-conventions.html" >Versioned project conventions</a><a href="checkpoint-review.html" >Checkpoints and reversions</a><a href="launch-profiles.html" >Service launch profiles</a><a href="code-intelligence.html" >Code intelligence</a><a href="architecture-explorer.html" >Architecture explorer</a><a href="memory-storage.html" >Project memory</a><a href="memory-claims.html" >Semantic claim review</a><a href="coordinated-changes.html" >Coordinated changes</a></section><section><h2>Connect and collaborate</h2><a href="team-collaboration.html" >Team collaboration</a><a href="shared-projects.html" >Shared project accounts</a><a href="ssh-projects.html" >SSH projects</a><a href="remote-workers.html" >Remote agent workers</a><a href="code-hosts.html" >GitLab and Bitbucket code workflows</a><a href="external-sources.html" >Read-only external sources</a><a href="automations.html" >Automations and away mode</a><a href="notifications.html" >Outbound notifications</a></section><section><h2>Operate safely</h2><a href="security.html" >Security, subscriptions and caveats</a><a href="filesystem-policy.html" >Project filesystem policy</a><a href="agent-containers.html" >Agent containers</a><a href="filtered-tasks.html" >Filtered Docker tasks</a><a href="dependency-discovery.html" >Dependency discovery</a><a href="maintenance.html" >Backup and maintenance</a></section><section><h2>Build and extend</h2><a href="architecture.html" >Architecture and development</a><a href="api.html" >Local API and command-line client</a><a href="extensions.html" >Provider and workflow extensions</a><a href="provider-compatibility.html" >Provider compatibility</a><a href="accessibility.html" >Accessibility acceptance</a><a href="performance.html" >Performance</a><a href="run-storage.html" >Run storage</a><a href="documentation.html" >Documentation and GitHub Pages</a><a href="releasing.html" >Preparing a preview release</a><a href="vscode.html" >Code Flow for VS Code</a></section><section><h2>Engineering records</h2><a href="application-improvements.html" aria-current="page">Application improvement program</a><a href="project-first-navigation-plan.html" >Project navigation review and implementation plan</a><a href="dynamic-teams-evaluation.html" >Dynamic teams: implementation evidence and rollout decision</a><a href="dynamic-teams-implementation-plan.html" >Dynamic teams, workflows, messaging, and memory</a><a href="dynamic-teams-implementation-review-1.html" >Review 1: the dynamic teams implementation</a><a href="worker-permission-verification.html" >Live worker permission verification</a><a href="dynamic-teams-plan-review-0.html" >Review 0: Dynamic teams implementation plan</a><a href="project-teams-implementation-plan.html" >Standing project teams implementation plan</a><a href="performance-results.html" >Measured performance: 19 October 2026</a></section><a class="app-link" id="back-app" hidden href="/">← Back to app</a></nav>
|
|
6
|
+
<main id="content" tabindex="-1"><div class="breadcrumb">Documentation <span>/</span> Engineering records</div><article><h1 id="application-improvement-program">Application improvement program</h1>
|
|
7
|
+
<blockquote>
|
|
8
|
+
<p>Engineering record. Status, measurements and decisions below describe the recorded implementation or review. For current usage, start with the <a href="index.html">documentation library</a>.</p>
|
|
9
|
+
</blockquote>
|
|
10
|
+
<p>This work continues the application review on branch <code>codex/application-improvements</code>, created from <code>main</code> at <code>abbb6be</code>. The original review contained defects, 14 broader product problems, and 73 feature ideas; those are tracked separately below.</p>
|
|
11
|
+
<p>The later <code>main</code> update at <code>d1677e1</code> is also integrated. Its composer Improve feature
|
|
12
|
+
retains Quick/Repository modes with cancellation, guarded Undo, safe provider
|
|
13
|
+
permissions, disposable private committed snapshots and mutation leases. Shared access, filesystem
|
|
14
|
+
restrictions and nonlocal execution profiles cannot bypass their execution rules
|
|
15
|
+
through this endpoint.</p>
|
|
16
|
+
<p>Before publication, this branch also integrates <code>main</code> at <code>7a593cc</code>: pinned
|
|
17
|
+
worktree Git namespaces, stronger test-integrity checks, compact run-log patches
|
|
18
|
+
and shared live-update transport. New workspace/verification helpers retain those
|
|
19
|
+
namespace guards. Cold recovery decodes patches incrementally and refreshes source
|
|
20
|
+
identities after compaction. Owner stream sharing uses a private channel secret
|
|
21
|
+
and an independent enumerable lock ID; shared accounts receive neither, and
|
|
22
|
+
identity changes close old owner connections. Targeted namespace, storage, broker,
|
|
23
|
+
authorization and same-tick repository-picker regressions cover the integration.</p>
|
|
24
|
+
<p>Current scope: all six priority correctness packages implemented; all 14 broader
|
|
25
|
+
problems have concrete improvements; all 73 feature items have implemented
|
|
26
|
+
acceptance scopes. Full-suite acceptance passed. Results are recorded
|
|
27
|
+
below; feature boundaries remain explicit rather than claiming unrestricted
|
|
28
|
+
provider parity or complete accessibility conformance.
|
|
29
|
+
An item is complete only when its behavior is implemented, reachable from its
|
|
30
|
+
intended interface, documented, and covered by appropriate validation. A service
|
|
31
|
+
interface, mock, or roadmap entry alone is not an implemented feature.</p>
|
|
32
|
+
<h2 id="correctness-and-quality-gates">Correctness and quality gates</h2>
|
|
33
|
+
<ul>
|
|
34
|
+
<li><input checked="" disabled="" type="checkbox"> Destination symlink containment and exclusive worktree copying.</li>
|
|
35
|
+
<li><input checked="" disabled="" type="checkbox"> Repository selection and configuration responses cannot overwrite newer choices.</li>
|
|
36
|
+
<li><input checked="" disabled="" type="checkbox"> Notes initialization, failed-write recovery, revision history, and conflicts.</li>
|
|
37
|
+
<li><input checked="" disabled="" type="checkbox"> Invalid routes recover without blanking the application.</li>
|
|
38
|
+
<li><input checked="" disabled="" type="checkbox"> Memory deletion descriptions match actual semantics; editing resolves conflicts.</li>
|
|
39
|
+
<li><input checked="" disabled="" type="checkbox"> Critical browser flows are required by CI, with stable test synchronization.</li>
|
|
40
|
+
</ul>
|
|
41
|
+
<h2 id="existing-product-problems">Existing product problems</h2>
|
|
42
|
+
<ul>
|
|
43
|
+
<li><input checked="" disabled="" type="checkbox"> 1. Simplify the first-run decisions.</li>
|
|
44
|
+
<li><input checked="" disabled="" type="checkbox"> 2. Give the composer room instead of opening an empty side panel.</li>
|
|
45
|
+
<li><input checked="" disabled="" type="checkbox"> 3. Make mobile execution controls readily accessible.</li>
|
|
46
|
+
<li><input checked="" disabled="" type="checkbox"> 4. Use consistent completion and verification states.</li>
|
|
47
|
+
<li><input checked="" disabled="" type="checkbox"> 5. Surface native tool approvals.</li>
|
|
48
|
+
<li><input checked="" disabled="" type="checkbox"> 6. Make execution isolation explicit and enforceable.</li>
|
|
49
|
+
<li><input checked="" disabled="" type="checkbox"> 7. Secure phone transport and individual sessions.</li>
|
|
50
|
+
<li><input checked="" disabled="" type="checkbox"> 8. Bound history startup, storage, and browsing. Streaming recovery uses four concurrent runs; archived detail uses an eight-entry/32 MiB cache and compact source-validated projections; old attention is capped and visibly paginated. Compact IDs and active/resumable metadata still scale with history. See <a href="run-storage.html">run storage</a>.</li>
|
|
51
|
+
<li><input checked="" disabled="" type="checkbox"> 9. Include inline GitHub review comments.</li>
|
|
52
|
+
<li><input checked="" disabled="" type="checkbox"> 10. Enforce browser correctness in CI.</li>
|
|
53
|
+
<li><input checked="" disabled="" type="checkbox"> 11. Make evaluation reproducible and retain experimental evidence gates.</li>
|
|
54
|
+
<li><input checked="" disabled="" type="checkbox"> 12. Separate core responsibilities behind tested modules. Persistence projection/recovery/cold storage, workspace operations, shared authorization, policy enforcement, remote execution, code-host operations and repository coordination have explicit tested modules. The engine retains execution authority and the server composes the route/lifecycle boundaries; further size reduction is ongoing maintenance.</li>
|
|
55
|
+
<li><input checked="" disabled="" type="checkbox"> 13. Improve keyboard, focus, touch, and screen-reader behavior. Theme/viewport browser audits, keyboard navigation and focus restoration, inert closed panels, contrast, target size, mobile tool selection and reduced motion are covered. Assistive-technology/user testing remains ongoing; no complete WCAG certification is claimed. See <a href="accessibility.html">accessibility acceptance</a>.</li>
|
|
56
|
+
<li><input checked="" disabled="" type="checkbox"> 14. Attribute provider results with samples and uncertainty.</li>
|
|
57
|
+
</ul>
|
|
58
|
+
<h2 id="feature-acceptance-backlog">Feature acceptance backlog</h2>
|
|
59
|
+
<ul>
|
|
60
|
+
<li><input checked="" disabled="" type="checkbox"> 1. Guided onboarding and dependency/authentication health, including explicit terminal/browser/Docker discovery and refresh.</li>
|
|
61
|
+
<li><input checked="" disabled="" type="checkbox"> 2. Repository readiness inspection and isolated command validation.</li>
|
|
62
|
+
<li><input checked="" disabled="" type="checkbox"> 3. Simple and advanced composer modes.</li>
|
|
63
|
+
<li><input checked="" disabled="" type="checkbox"> 4. Named versioned team presets with import/export.</li>
|
|
64
|
+
<li><input checked="" disabled="" type="checkbox"> 5. Editable acceptance criteria.</li>
|
|
65
|
+
<li><input checked="" disabled="" type="checkbox"> 6. Parameterized task templates.</li>
|
|
66
|
+
<li><input checked="" disabled="" type="checkbox"> 7. Effective settings and provenance inspection.</li>
|
|
67
|
+
<li><input checked="" disabled="" type="checkbox"> 8. Command palette.</li>
|
|
68
|
+
<li><input checked="" disabled="" type="checkbox"> 9. Scoped native tool approval inbox.</li>
|
|
69
|
+
<li><input checked="" disabled="" type="checkbox"> 10. Editable validated workflow graph.</li>
|
|
70
|
+
<li><input checked="" disabled="" type="checkbox"> 11. Priority queue and project fairness.</li>
|
|
71
|
+
<li><input checked="" disabled="" type="checkbox"> 12. Safe checkpoint pause.</li>
|
|
72
|
+
<li><input checked="" disabled="" type="checkbox"> 13. Fork from a checkpoint.</li>
|
|
73
|
+
<li><input checked="" disabled="" type="checkbox"> 14. Selective task reruns and downstream evidence invalidation, with pinned retained baselines and fresh final review/checks.</li>
|
|
74
|
+
<li><input checked="" disabled="" type="checkbox"> 15. Quota-aware deferred execution with durable claims, reported reset windows and explicit ambiguous-launch recovery.</li>
|
|
75
|
+
<li><input checked="" disabled="" type="checkbox"> 16. Token and API-equivalent usage ceilings.</li>
|
|
76
|
+
<li><input checked="" disabled="" type="checkbox"> 17. Conflict-aware task assignments.</li>
|
|
77
|
+
<li><input checked="" disabled="" type="checkbox"> 18. SSH remote workers with explicit repository mappings, worker-local credentials, bounded exact source/result bundles, heartbeats, cancellation, durable claims and receipt-only recovery. Actual encrypted loopback SSH acceptance passed. See <a href="remote-workers.html">worker setup</a>.</li>
|
|
78
|
+
<li><input checked="" disabled="" type="checkbox"> 19. Multiple verification gates.</li>
|
|
79
|
+
<li><input checked="" disabled="" type="checkbox"> 20. Repository verification profiles.</li>
|
|
80
|
+
<li><input checked="" disabled="" type="checkbox"> 21. Requirement-to-evidence mapping across workflows.</li>
|
|
81
|
+
<li><input checked="" disabled="" type="checkbox"> 22. Review coverage reporting.</li>
|
|
82
|
+
<li><input checked="" disabled="" type="checkbox"> 23. Change risk summaries.</li>
|
|
83
|
+
<li><input checked="" disabled="" type="checkbox"> 24. Baseline and flaky-check diagnosis.</li>
|
|
84
|
+
<li><input checked="" disabled="" type="checkbox"> 25. Optional mutation verification.</li>
|
|
85
|
+
<li><input checked="" disabled="" type="checkbox"> 26. Visual and accessibility verification gates.</li>
|
|
86
|
+
<li><input checked="" disabled="" type="checkbox"> 27. GitHub review threads with inline locations/replies, bounded complete-thread loading, explicit remote resolve/reopen, fresh revision/head checks and honest postflight race reporting. See <a href="github-review-threads.html">thread synchronization</a>.</li>
|
|
87
|
+
<li><input checked="" disabled="" type="checkbox"> 28. Validate the current merge target.</li>
|
|
88
|
+
<li><input checked="" disabled="" type="checkbox"> 29. Export verification reports.</li>
|
|
89
|
+
<li><input checked="" disabled="" type="checkbox"> 30. Symbol-aware code search and JavaScript/TypeScript imported references through an isolated language service.</li>
|
|
90
|
+
<li><input checked="" disabled="" type="checkbox"> 31. Static architecture exploration across JavaScript/TypeScript, Python, Go, Rust and Java, including manifest packages, directory boundaries, cycles, explicit unresolved/computed edges and exports. No project configuration executes. See <a href="architecture-explorer.html">architecture explorer</a>.</li>
|
|
91
|
+
<li><input checked="" disabled="" type="checkbox"> 32. File editing with save previews and conflicts.</li>
|
|
92
|
+
<li><input checked="" disabled="" type="checkbox"> 33. Selective file/hunk application.</li>
|
|
93
|
+
<li><input checked="" disabled="" type="checkbox"> 34. Three-way conflict resolution.</li>
|
|
94
|
+
<li><input checked="" disabled="" type="checkbox"> 35. Multi-service workspace launch profiles.</li>
|
|
95
|
+
<li><input checked="" disabled="" type="checkbox"> 36. Context inspection before dispatch: bounded directory expansion, explicit assembled-input measurements and warn/block ceilings. Hidden provider history and later file/image tokens are outside this scope.</li>
|
|
96
|
+
<li><input checked="" disabled="" type="checkbox"> 37. Concurrent workspace activity coordination with in-process workspace mutation leases across starts, resumes and owned worktrees. External/manual programs remain outside the lease system.</li>
|
|
97
|
+
<li><input checked="" disabled="" type="checkbox"> 38. Full checkpoint comparison and guarded staged inverse commits, alongside selective file/hunk restoration. Merge-commit mainline decisions remain manual.</li>
|
|
98
|
+
<li><input checked="" disabled="" type="checkbox"> 39. Memory provenance graph.</li>
|
|
99
|
+
<li><input checked="" disabled="" type="checkbox"> 40. Memory edit conflict resolution.</li>
|
|
100
|
+
<li><input checked="" disabled="" type="checkbox"> 41. Memory deletion impact preview.</li>
|
|
101
|
+
<li><input checked="" disabled="" type="checkbox"> 42. Stale-memory detection.</li>
|
|
102
|
+
<li><input checked="" disabled="" type="checkbox"> 43. Memory duplicates and supported semantic contradictions with policy synonyms/negation, structured boolean/text/numeric interval claims, unit conversion, exact source revisions and overlapping applicability. Unsupported prose is counted and no winner is selected automatically. See <a href="memory-claims.html">semantic claims</a>.</li>
|
|
103
|
+
<li><input checked="" disabled="" type="checkbox"> 44. Dedicated versioned project conventions with immutable history, conflict-safe drafts, preview restore and guarded explicit publication.</li>
|
|
104
|
+
<li><input checked="" disabled="" type="checkbox"> 45. Searchable revisioned notes.</li>
|
|
105
|
+
<li><input checked="" disabled="" type="checkbox"> 46. Curated project onboarding summaries.</li>
|
|
106
|
+
<li><input checked="" disabled="" type="checkbox"> 47. Explicit schedule time zones and previews.</li>
|
|
107
|
+
<li><input checked="" disabled="" type="checkbox"> 48. Inspectable webhook queue.</li>
|
|
108
|
+
<li><input checked="" disabled="" type="checkbox"> 49. Failed delivery replay.</li>
|
|
109
|
+
<li><input checked="" disabled="" type="checkbox"> 50. Automation dry runs.</li>
|
|
110
|
+
<li><input checked="" disabled="" type="checkbox"> 51. Grouped prioritized review inbox for manual and unattended questions, blocked work, failures and results.</li>
|
|
111
|
+
<li><input checked="" disabled="" type="checkbox"> 52. GitLab/Bitbucket code fetch, prepared-container review, comments/replies/resolution, verified-result push, new PR creation and pinned Git merge. Durable unknown-operation receipts prevent automatic replay. Unsupported native queue/policy/atomic approval capabilities are explicit and fail closed. See <a href="code-hosts.html">code-host workflows</a>.</li>
|
|
112
|
+
<li><input checked="" disabled="" type="checkbox"> 53. Linear and Jira sources.</li>
|
|
113
|
+
<li><input checked="" disabled="" type="checkbox"> 54. Opt-in external notifications.</li>
|
|
114
|
+
<li><input checked="" disabled="" type="checkbox"> 55. Documented CLI and versioned API.</li>
|
|
115
|
+
<li><input checked="" disabled="" type="checkbox"> 56. Multi-repository dependency DAGs, pinned verification/source policy, durable child receipts, current accepted result evidence, reviewed shipping matrices and explicit per-repository CAS merges. Actual two-repository browser acceptance passed. See <a href="coordinated-changes.html">coordinated changes</a>.</li>
|
|
116
|
+
<li><input checked="" disabled="" type="checkbox"> 57. Isolated agent containers.</li>
|
|
117
|
+
<li><input checked="" disabled="" type="checkbox"> 58. Secure paired phone sessions.</li>
|
|
118
|
+
<li><input checked="" disabled="" type="checkbox"> 59. Per-project CAS read/write allow/deny rules enforce app access and intersect current/pinned policies. Manual filtered Docker tasks use immutable prepared images, allowed committed files in a fresh Git namespace, read-only denied-write mounts, bounded outputs, confirmed cancellation and explicit source/policy/content-checked review-branch imports. Ordinary native/SSH/automated execution remains paused under restrictions. Actual Docker isolation/import/cancellation and browser acceptance passed. See <a href="filesystem-policy.html">filesystem policy</a>.</li>
|
|
119
|
+
<li><input checked="" disabled="" type="checkbox"> 60. Secret filtering for exported content.</li>
|
|
120
|
+
<li><input checked="" disabled="" type="checkbox"> 61. Saved per-type retention policies for archived runs, attachments, run memory and worktrees, with protected exact plans and explicit offline application.</li>
|
|
121
|
+
<li><input checked="" disabled="" type="checkbox"> 62. Backup and restore.</li>
|
|
122
|
+
<li><input checked="" disabled="" type="checkbox"> 63. History compaction and pagination.</li>
|
|
123
|
+
<li><input checked="" disabled="" type="checkbox"> 64. Sanitized diagnostic bundles.</li>
|
|
124
|
+
<li><input checked="" disabled="" type="checkbox"> 65. Persistent connection status.</li>
|
|
125
|
+
<li><input checked="" disabled="" type="checkbox"> 66. Continuous official supported-version CLI version/help matrix, bounded isolated installs, exact executable/version checks, protocol fixtures and retained reports. Five actual official CLI probes passed locally; GitHub Actions execution awaits a pushed branch. See <a href="provider-compatibility.html">compatibility evidence</a>.</li>
|
|
126
|
+
<li><input checked="" disabled="" type="checkbox"> 67. Task-specific provider comparisons.</li>
|
|
127
|
+
<li><input checked="" disabled="" type="checkbox"> 68. Human rework tracking.</li>
|
|
128
|
+
<li><input checked="" disabled="" type="checkbox"> 69. Critical-path timing analysis.</li>
|
|
129
|
+
<li><input checked="" disabled="" type="checkbox"> 70. Reproducible benchmark fixtures and model identities.</li>
|
|
130
|
+
<li><input checked="" disabled="" type="checkbox"> 71. Local scrypt identities, revocable expiring sessions, scoped viewer/reviewer project roles, safe results/feeds/exports and commit-anchored human review. Owner remains the sole executor. See <a href="shared-projects.html">shared projects</a>.</li>
|
|
131
|
+
<li><input checked="" disabled="" type="checkbox"> 72. Local VS Code integration with SecretStorage connection, task creation, run inspection, cancellation and result worktrees; packaged and tested in the actual editor host.</li>
|
|
132
|
+
<li><input checked="" disabled="" type="checkbox"> 73. Explicit trusted bundled provider/workflow plugins, negotiated API/capabilities, captured hash-verified cache bytes, atomic registration and immutable run version/hash pins. No repository auto-discovery or HTTP installation. See <a href="extensions.html">extension contracts</a>.</li>
|
|
133
|
+
</ul>
|
|
134
|
+
<h2 id="implementation-boundaries">Implementation boundaries</h2>
|
|
135
|
+
<p>Mutation, visual and accessibility gates execute explicitly configured repository
|
|
136
|
+
scripts; they do not supply mutation engines or image baselines. External
|
|
137
|
+
provider APIs were validated with HTTP fixtures and real local Git repositories,
|
|
138
|
+
not live third-party account writes. GitLab/Bitbucket code fetching is explicit;
|
|
139
|
+
ordinary source-text imports remain read-only. Native containers and encrypted
|
|
140
|
+
loopback SSH use fake CLIs, with no inference quota. Official compatibility
|
|
141
|
+
probes execute only version/help. Shared roles grant review access; phone pairing
|
|
142
|
+
grants owner control. Critical-path metrics use observed time, not predictions.</p>
|
|
143
|
+
<p>Architecture and semantic-memory analysis are bounded static/deterministic tools,
|
|
144
|
+
not complete runtime dependency discovery or unrestricted natural-language
|
|
145
|
+
reasoning. Extensions are trusted full-authority server code. Remote workers
|
|
146
|
+
must be provisioned explicitly. Code-host native queues and unsupported policy
|
|
147
|
+
semantics require the provider UI. These are documented implementation boundaries,
|
|
148
|
+
not silently simulated success.</p>
|
|
149
|
+
<h2 id="validation">Validation</h2>
|
|
150
|
+
<p>Use fake agents for development. Never spend real provider quota, publish results,
|
|
151
|
+
send external notifications, or mutate third-party accounts as a side effect of
|
|
152
|
+
the test suite. Account-dependent features require explicit configured credentials
|
|
153
|
+
for live acceptance testing; fixture coverage is recorded separately.</p>
|
|
154
|
+
<p>The first checkpoint passed 621 unit tests with three opt-in Docker cases skipped;
|
|
155
|
+
those three native Docker cases passed separately. Its full browser suite passed
|
|
156
|
+
35/35. The second batch's unit run passed 688/688 executed checks (three optional
|
|
157
|
+
Docker cases skipped). Focused browser acceptance also covers conventions,
|
|
158
|
+
dependency discovery, deferred restart/receipt recovery, selective reruns,
|
|
159
|
+
retention, context budgets, commit reversions and language-service references.
|
|
160
|
+
The final full browser rerun passed 45/45 after the folder-picker race fix.
|
|
161
|
+
The VS Code extension passed actual host acceptance on installed VS Code 1.141.0,
|
|
162
|
+
and the packaged VSIX passed the same host acceptance after isolated installation,
|
|
163
|
+
including delayed-response connection/disconnection regressions. No real provider
|
|
164
|
+
quota, external notifications or third-party account mutations were used.
|
|
165
|
+
The test runner limits unit concurrency to four files and browser concurrency to
|
|
166
|
+
two because these suites launch real Git, server and browser processes.</p>
|
|
167
|
+
<p>The final implementation checkpoint passed 812 unit checks with six optional
|
|
168
|
+
native-runtime checks skipped. Those five real Docker checks and the encrypted
|
|
169
|
+
loopback SSH check passed separately. The full browser suite passed 64/64.
|
|
170
|
+
The last filtered-task concurrency changes passed 31 focused unit checks and
|
|
171
|
+
2/2 browser flows after the main suite had started. Native acceptance includes
|
|
172
|
+
fresh-home credential seeding with dummy credentials, denied-file/original-Git
|
|
173
|
+
absence, read-only mounts, exact review-branch import and confirmed cancellation.
|
|
174
|
+
The packaged VSIX passed actual installed VS Code host acceptance again.
|
|
175
|
+
Typecheck, UI/worker builds, 68 accessibility renderings and local documentation
|
|
176
|
+
links passed. Provider version/help probes used actual official binaries; no
|
|
177
|
+
live inference, account mutation or notification delivery occurred.</p>
|
|
178
|
+
<p>After integrating the newer <code>main</code> composer feature, 19 existing browser and
|
|
179
|
+
accessibility checks, four new Improve browser flows and two shared/policy security
|
|
180
|
+
flows passed. Eleven prompt-improvement unit checks and all 14 server-reliability
|
|
181
|
+
checks passed, including a delayed-turn lease/cancellation test that exposed and
|
|
182
|
+
fixed an incorrect 400 response for concurrent run starts. A subsequent source
|
|
183
|
+
review moved Improve out of the working checkout entirely so external edits can
|
|
184
|
+
never be discarded by read-only cleanup. Final typecheck and
|
|
185
|
+
UI/worker builds passed. The Improve menu adds two mobile theme audits, bringing
|
|
186
|
+
the accessibility acceptance total to 70 renderings; both mobile screenshots were
|
|
187
|
+
inspected for readable controls and overflow.</p>
|
|
188
|
+
<p>The post-merge full unit run passed 828 checks with six optional native-runtime
|
|
189
|
+
cases skipped (already passed separately). After private-snapshot hardening,
|
|
190
|
+
all 15 Improve checks and all 15 server-reliability checks passed again, including
|
|
191
|
+
external source edits/commits, private cleanup, executable-configuration exclusion,
|
|
192
|
+
snapshot bounds and early environment checks across both API prefixes. The four
|
|
193
|
+
Improve browser flows passed with the isolated backend; the final menu-wrapping
|
|
194
|
+
change also passed its mobile/profile regression and visual inspection.
|
|
195
|
+
The final subprocess PATH fix passed 15 foundation/filesystem-policy unit checks
|
|
196
|
+
and the policy browser flow. Actual malicious cwd/relative-bin executables were
|
|
197
|
+
refused for inherited and overridden PATHs; explicit absolute fixture binaries
|
|
198
|
+
remain usable. The exact-route regression passed again after adding malformed
|
|
199
|
+
suffix/method checks across both API prefixes.</p>
|
|
200
|
+
<h2 id="result-first-product-experiences">Result-first product experiences</h2>
|
|
201
|
+
<p>The composer retains its outcome starters and now records an explicit task type
|
|
202
|
+
on new runs. Expand <strong>Workflow advice from this repository</strong> to inspect check
|
|
203
|
+
success, acceptance feedback, correction samples and supporting runs, then apply
|
|
204
|
+
a workflow deliberately. Suggestions require three completed samples per
|
|
205
|
+
workflow, retain failures in their denominator and do not infer task types from
|
|
206
|
+
older prose. They describe history, not task difficulty or a predicted winner.</p>
|
|
207
|
+
<p>Running work has a compact progress card with dispatch pause and run priority.
|
|
208
|
+
Auto teams also have a <strong>Who's doing what</strong> map: select a task to inspect its
|
|
209
|
+
owner, paths, dependency blockers and open questions. A task priority applies at
|
|
210
|
+
the next dispatch and cannot override dependencies, occupied members/paths,
|
|
211
|
+
review reservations or budgets. Existing journaled dispatches remain pinned on
|
|
212
|
+
resume. Standing-team task priorities remain controlled by their mission.</p>
|
|
213
|
+
<p>Finished results lead with <strong>Try this result</strong>, evidence, and commit-specific
|
|
214
|
+
<strong>Accept result / Needs more work</strong> feedback. The preview waits for its allocated
|
|
215
|
+
port before opening. Feedback neither publishes nor substitutes for standing-team
|
|
216
|
+
approval. Project pages and Insights show historical acceptance, median elapsed
|
|
217
|
+
time to a verified result, recorded correction time and merged runs. Unrated
|
|
218
|
+
runs and missing correction records are explicit; missing corrections are not
|
|
219
|
+
zero-minute samples. Acceptance refers to the latest recorded decision, which
|
|
220
|
+
can belong to an earlier commit. The result screen flags that difference.</p>
|
|
221
|
+
<p><strong>Show me what changed</strong> captures the running app beside an optional original
|
|
222
|
+
URL at the same viewport. Snapshots use fresh browser profiles and can be
|
|
223
|
+
downloaded; they are visual observations rather than automated proof. For a
|
|
224
|
+
recorded scenario, the result instead also offers a replay and a step-by-step
|
|
225
|
+
screenshot walkthrough beside the original replay.</p>
|
|
226
|
+
<p><strong>Try two alternatives</strong> launches two ordinary runs from the same exact result
|
|
227
|
+
commit with separate instructions and budgets. Each result has its own preview,
|
|
228
|
+
check state and continuation link. No branch is chosen, merged or published
|
|
229
|
+
automatically. If a comparison launch fails partway through, inspect recent runs
|
|
230
|
+
before requesting another; successful children remain visible in their group.</p>
|
|
231
|
+
<h3 id="record-a-bug-and-prepare-its-regression-test">Record a bug and prepare its regression test</h3>
|
|
232
|
+
<ol>
|
|
233
|
+
<li>Open a local HTTP app in <strong>Browser</strong> and choose <strong>Record a bug</strong>.</li>
|
|
234
|
+
<li>Reproduce the flow. Clicks, text input, single-select changes and
|
|
235
|
+
Enter/Tab/Escape are supported. The recording follows same-origin document
|
|
236
|
+
navigation. Shadow DOM, nested frames, file uploads, gestures and authenticated
|
|
237
|
+
fixtures require adapting the exported test.</li>
|
|
238
|
+
<li>Stop recording, inspect/remove interactions, name the scenario and specify
|
|
239
|
+
an expected element selector and visible text. Save the immutable scenario.</li>
|
|
240
|
+
<li><strong>Replay original scenario</strong> checks that assertion in fresh Chrome and saves
|
|
241
|
+
a screenshot walkthrough. Password/credential fields are excluded; review
|
|
242
|
+
other recorded form values before saving. Replays can mutate the app's data.</li>
|
|
243
|
+
<li><strong>Prepare verified fix</strong> attaches a generated Playwright regression test to a
|
|
244
|
+
new pipeline draft. The agent is instructed to demonstrate failure before the
|
|
245
|
+
fix and success afterward, adapting it to the repository's test setup. Review
|
|
246
|
+
the draft and its check configuration before starting.</li>
|
|
247
|
+
<li>On the result, start its preview and <strong>Replay scenario on this result</strong> to
|
|
248
|
+
compare observations. A replay never changes the run's independent check or
|
|
249
|
+
proof verdict. Only the specified visible-text assertion is tested. The
|
|
250
|
+
recorded branch head is informational: dev servers can serve an older build
|
|
251
|
+
or uncommitted files, so a browser replay does not certify a Git tree.</li>
|
|
252
|
+
</ol>
|
|
253
|
+
<p>Recordings are owner-only, stored privately under <code>CODEFLOW_HOME/journeys</code>,
|
|
254
|
+
included by ordinary backups, and available from each project's <strong>Recorded
|
|
255
|
+
scenarios</strong> library after restart. Export the generated test or delete an unused
|
|
256
|
+
scenario and its evidence there. Limits: 100 scenarios per host, 30 interactions
|
|
257
|
+
per scenario, 1,920px recording width, four retained replay receipts per scenario,
|
|
258
|
+
2.5 million base64 screenshot characters per receipt, 16 MiB per evidence file,
|
|
259
|
+
one replay at a time, and the existing 45-second snapshot execution deadline.
|
|
260
|
+
Uncaptured frames are omitted, never synthesized. Replay checks local app URLs,
|
|
261
|
+
refuses code-flow's own listener ports and keeps document navigation on the
|
|
262
|
+
selected origin. The existing snapshot network caveats also apply. Filesystem
|
|
263
|
+
restrictions pause these operations; shared reviewers cannot access recordings.</p>
|
|
264
|
+
<p>Project pages now lead standing teams with a <strong>Project briefing</strong> showing up to
|
|
265
|
+
three actionable opportunities. Ready drafts come first, followed by reported
|
|
266
|
+
impact and recency. Cards expose users, benefit, risk, source quotes and the
|
|
267
|
+
pinned source commit. <strong>Dismiss opportunity</strong> records a rejection through the
|
|
268
|
+
existing team decision service, so subsequent discovery respects it. Schedules
|
|
269
|
+
and standing teams remain explicitly activated by the owner.</p>
|
|
270
|
+
<p><a href="index.html">Documentation library</a> · <a href="architecture.html">Development guide</a></p>
|
|
271
|
+
</article><footer><a href="https://github.com/midhunxavier/code-flow/blob/main/docs/application-improvements.md">Edit this page on GitHub ↗</a><span>code-flow · 0.1.0-preview.3 · <a href="font-license.txt">Font license</a></span></footer><nav class="pagination" aria-label="Adjacent guides"><a href="releasing.html"><small>← Previous</small>Preparing a preview release</a><a href="project-first-navigation-plan.html"><small>Next →</small>Project navigation review and implementation plan</a></nav></main>
|
|
272
|
+
<aside class="on-page" aria-label="On this page"><strong>On this page</strong><a class="depth-2" href="#correctness-and-quality-gates">Correctness and quality gates</a><a class="depth-2" href="#existing-product-problems">Existing product problems</a><a class="depth-2" href="#feature-acceptance-backlog">Feature acceptance backlog</a><a class="depth-2" href="#implementation-boundaries">Implementation boundaries</a><a class="depth-2" href="#validation">Validation</a><a class="depth-2" href="#result-first-product-experiences">Result-first product experiences</a><a class="depth-3" href="#record-a-bug-and-prepare-its-regression-test">Record a bug and prepare its regression test</a></aside>
|
|
273
|
+
<aside id="help-panel" hidden aria-labelledby="help-title"><div class="chat-heading"><div><span class="eyebrow">Your AI companion</span><h2 id="help-title">Ask code-flow</h2></div><button id="close-help" aria-label="Close AI companion">✕</button></div><div class="chat-toolbar"><span>Grounded in your docs</span><button id="new-chat">New chat</button></div><div id="help-messages" role="log" aria-label="Help conversation" aria-live="polite"><div id="chat-welcome"><span class="chat-mark" aria-hidden="true">✦</span><h3>What would you like to do?</h3><p>Let’s find your next step. Ask about setup, workflows or something that’s unclear.</p><div class="suggestions"><button type="button" data-question="How do I start my first run?">Start my first run ↗</button><button type="button" data-question="What should I do when a check fails?">Understand a failed check ↗</button></div></div></div><p id="help-status" role="status">Checking your installed CLIs…</p><button id="retry-help" hidden>Retry connection</button><form id="help-form" hidden><label class="sr-only" for="question">Your question</label><textarea id="question" rows="3" maxlength="4000" placeholder="Ask a question…" required></textarea><div class="composer-controls"><label class="sr-only" for="help-agent">Use your CLI</label><select id="help-agent"></select><button type="button" id="stop-help" hidden>Stop</button><button class="primary" id="send-help" aria-label="Send message">Send ↗</button></div><small>Uses your CLI login and quota. Shift + Enter for a new line.</small></form><a id="help-guide" href="help.html">About your local companion →</a></aside></div>
|
|
274
|
+
<dialog id="search-dialog" aria-labelledby="search-title"><div class="dialog-title"><h2 id="search-title">Search documentation</h2><button data-close="search-dialog" aria-label="Close search">✕</button></div><label class="sr-only" for="search">Search all guides</label><input id="search" type="search" placeholder="Search workflows, settings, troubleshooting…" autocomplete="off"><div id="search-results" aria-live="polite"></div></dialog>
|
|
275
|
+
</body></html>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="Architecture explorer — code-flow guides and reference"><title>Architecture explorer · code-flow</title><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMCIgZmlsbD0iIzFlMWYxYSIgc3Ryb2tlPSIjM2Q0MDM2IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8c3ZnIHg9IjE1IiB5PSIxNSIgd2lkdGg9IjM0IiBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2VjZWJlNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGggZD0iTTEyIDNsOSA1LTkgNS05LTV6TTMgMTNsOSA1IDktNU0zIDE3LjVsOSA1IDktNSIvPgogIDwvc3ZnPgo8L3N2Zz4K"><link rel="stylesheet" href="style.css"><script src="app.js" defer></script></head>
|
|
3
|
+
<body data-page="architecture-explorer"><a class="skip-link" href="#content">Skip to content</a>
|
|
4
|
+
<header class="topbar"><a class="brand" href="index.html"><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMCIgZmlsbD0iIzFlMWYxYSIgc3Ryb2tlPSIjM2Q0MDM2IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8c3ZnIHg9IjE1IiB5PSIxNSIgd2lkdGg9IjM0IiBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2VjZWJlNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGggZD0iTTEyIDNsOSA1LTkgNS05LTV6TTMgMTNsOSA1IDktNU0zIDE3LjVsOSA1IDktNSIvPgogIDwvc3ZnPgo8L3N2Zz4K" width="30" height="30" alt=""><strong>Code Flow</strong><span>Docs</span></a><button class="search-trigger" id="open-search">Search documentation <kbd>⌘ K</kbd></button><div class="top-actions"><a href="https://github.com/midhunxavier/code-flow">GitHub ↗</a><button id="theme" aria-label="Change color theme">Theme</button><button id="open-help" class="primary" hidden aria-expanded="false" aria-controls="help-panel">Ask code-flow</button><button id="menu" aria-label="Toggle documentation navigation" aria-expanded="false" aria-controls="sidebar">☰</button></div></header>
|
|
5
|
+
<div class="layout"><nav class="sidebar" id="sidebar" aria-label="Documentation"><section><h2>Get started</h2><a href="index.html" >Overview</a><a href="installation.html" >Install Code Flow preview</a><a href="getting-started.html" >Getting started</a><a href="patterns.html" >Team patterns</a><a href="acp-agents.html" >ACP coding agents</a><a href="help.html" >Ask code-flow</a></section><section><h2>Work with agents</h2><a href="runs.html" >Runs and workspace</a><a href="auto-team.html" >Team</a><a href="project-teams.html" >Project missions (preview)</a><a href="review-inbox.html" >Review inbox</a><a href="verification.html" >Verification and review</a><a href="github.html" >GitHub, review and shipping</a><a href="github-review-threads.html" >GitHub review threads</a><a href="task-reruns.html" >Selective task reruns</a><a href="deferred-runs.html" >Deferred runs</a></section><section><h2>Your workspace</h2><a href="configuration.html" >Configuration</a><a href="context-inspection.html" >Context and budgets</a><a href="project-conventions.html" >Versioned project conventions</a><a href="checkpoint-review.html" >Checkpoints and reversions</a><a href="launch-profiles.html" >Service launch profiles</a><a href="code-intelligence.html" >Code intelligence</a><a href="architecture-explorer.html" aria-current="page">Architecture explorer</a><a href="memory-storage.html" >Project memory</a><a href="memory-claims.html" >Semantic claim review</a><a href="coordinated-changes.html" >Coordinated changes</a></section><section><h2>Connect and collaborate</h2><a href="team-collaboration.html" >Team collaboration</a><a href="shared-projects.html" >Shared project accounts</a><a href="ssh-projects.html" >SSH projects</a><a href="remote-workers.html" >Remote agent workers</a><a href="code-hosts.html" >GitLab and Bitbucket code workflows</a><a href="external-sources.html" >Read-only external sources</a><a href="automations.html" >Automations and away mode</a><a href="notifications.html" >Outbound notifications</a></section><section><h2>Operate safely</h2><a href="security.html" >Security, subscriptions and caveats</a><a href="filesystem-policy.html" >Project filesystem policy</a><a href="agent-containers.html" >Agent containers</a><a href="filtered-tasks.html" >Filtered Docker tasks</a><a href="dependency-discovery.html" >Dependency discovery</a><a href="maintenance.html" >Backup and maintenance</a></section><section><h2>Build and extend</h2><a href="architecture.html" >Architecture and development</a><a href="api.html" >Local API and command-line client</a><a href="extensions.html" >Provider and workflow extensions</a><a href="provider-compatibility.html" >Provider compatibility</a><a href="accessibility.html" >Accessibility acceptance</a><a href="performance.html" >Performance</a><a href="run-storage.html" >Run storage</a><a href="documentation.html" >Documentation and GitHub Pages</a><a href="releasing.html" >Preparing a preview release</a><a href="vscode.html" >Code Flow for VS Code</a></section><section><h2>Engineering records</h2><a href="application-improvements.html" >Application improvement program</a><a href="project-first-navigation-plan.html" >Project navigation review and implementation plan</a><a href="dynamic-teams-evaluation.html" >Dynamic teams: implementation evidence and rollout decision</a><a href="dynamic-teams-implementation-plan.html" >Dynamic teams, workflows, messaging, and memory</a><a href="dynamic-teams-implementation-review-1.html" >Review 1: the dynamic teams implementation</a><a href="worker-permission-verification.html" >Live worker permission verification</a><a href="dynamic-teams-plan-review-0.html" >Review 0: Dynamic teams implementation plan</a><a href="project-teams-implementation-plan.html" >Standing project teams implementation plan</a><a href="performance-results.html" >Measured performance: 19 October 2026</a></section><a class="app-link" id="back-app" hidden href="/">← Back to app</a></nav>
|
|
6
|
+
<main id="content" tabindex="-1"><div class="breadcrumb">Documentation <span>/</span> Your workspace</div><article><h1 id="architecture-explorer">Architecture explorer</h1>
|
|
7
|
+
<p>Use static dependency evidence to investigate how a change may affect other files. Unresolved imports still need interpretation.</p>
|
|
8
|
+
<h2 id="explore-repository-structure">Explore repository structure</h2>
|
|
9
|
+
<p>Open <strong>What could this change affect?</strong> while editing a file in Files or Repository tools → Code, or while reviewing a result branch. This inspects saved tracked source without executing repository code, build hooks, compilers or package managers. It resolves JavaScript/TypeScript syntax with TypeScript's parser, including literal dynamic imports and CommonJS requires. Conservative static scans also cover Python imports, Go import groups and local module packages, Rust modules and basic use declarations, and Java class imports.</p>
|
|
10
|
+
<p>The view includes file relationships, directory coupling, dependency cycles, declared npm/Python/Go/Rust/Maven packages, unresolved imports and computed runtime targets. Export the same evidence as JSON. An unresolved import may be an external or standard library package; it is not evidence that a dependency is missing. Runtime loaders, path aliases, Rust macros, Java wildcards, generated source and conditional builds still need manual inspection. No package installation or dependency-tree network lookup occurs.</p>
|
|
11
|
+
<p>The scan considers at most 600 tracked files and 8 MiB of readable source, with 4,000 relationships, 1,000 manifest dependencies, 500 unresolved imports and 200 computed targets. Truncation is visible. Existing symlink and regular-text file checks apply, and credential paths and dependency/build directories are excluded. Untracked and unsaved editor drafts are excluded. Cancellation stops the scan.</p>
|
|
12
|
+
<p>The import rules follow the <a href="https://docs.python.org/3/reference/import.html">Python import system</a>, <a href="https://go.dev/ref/spec#Import_declarations">Go import declarations</a>, and <a href="https://doc.rust-lang.org/reference/items/use-declarations.html">Rust use declarations</a>; these static scans do not reproduce every language's runtime resolution.</p>
|
|
13
|
+
<hr>
|
|
14
|
+
<p><a href="index.html">Documentation library</a> · <a href="getting-started.html">Getting started</a> · <a href="help.html">Ask code-flow</a></p>
|
|
15
|
+
</article><footer><a href="https://github.com/midhunxavier/code-flow/blob/main/docs/architecture-explorer.md">Edit this page on GitHub ↗</a><span>code-flow · 0.1.0-preview.3 · <a href="font-license.txt">Font license</a></span></footer><nav class="pagination" aria-label="Adjacent guides"><a href="code-intelligence.html"><small>← Previous</small>Code intelligence</a><a href="memory-storage.html"><small>Next →</small>Project memory</a></nav></main>
|
|
16
|
+
<aside class="on-page" aria-label="On this page"><strong>On this page</strong><a class="depth-2" href="#explore-repository-structure">Explore repository structure</a></aside>
|
|
17
|
+
<aside id="help-panel" hidden aria-labelledby="help-title"><div class="chat-heading"><div><span class="eyebrow">Your AI companion</span><h2 id="help-title">Ask code-flow</h2></div><button id="close-help" aria-label="Close AI companion">✕</button></div><div class="chat-toolbar"><span>Grounded in your docs</span><button id="new-chat">New chat</button></div><div id="help-messages" role="log" aria-label="Help conversation" aria-live="polite"><div id="chat-welcome"><span class="chat-mark" aria-hidden="true">✦</span><h3>What would you like to do?</h3><p>Let’s find your next step. Ask about setup, workflows or something that’s unclear.</p><div class="suggestions"><button type="button" data-question="How do I start my first run?">Start my first run ↗</button><button type="button" data-question="What should I do when a check fails?">Understand a failed check ↗</button></div></div></div><p id="help-status" role="status">Checking your installed CLIs…</p><button id="retry-help" hidden>Retry connection</button><form id="help-form" hidden><label class="sr-only" for="question">Your question</label><textarea id="question" rows="3" maxlength="4000" placeholder="Ask a question…" required></textarea><div class="composer-controls"><label class="sr-only" for="help-agent">Use your CLI</label><select id="help-agent"></select><button type="button" id="stop-help" hidden>Stop</button><button class="primary" id="send-help" aria-label="Send message">Send ↗</button></div><small>Uses your CLI login and quota. Shift + Enter for a new line.</small></form><a id="help-guide" href="help.html">About your local companion →</a></aside></div>
|
|
18
|
+
<dialog id="search-dialog" aria-labelledby="search-title"><div class="dialog-title"><h2 id="search-title">Search documentation</h2><button data-close="search-dialog" aria-label="Close search">✕</button></div><label class="sr-only" for="search">Search all guides</label><input id="search" type="search" placeholder="Search workflows, settings, troubleshooting…" autocomplete="off"><div id="search-results" aria-live="polite"></div></dialog>
|
|
19
|
+
</body></html>
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="Architecture and development — code-flow guides and reference"><title>Architecture and development · code-flow</title><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMCIgZmlsbD0iIzFlMWYxYSIgc3Ryb2tlPSIjM2Q0MDM2IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8c3ZnIHg9IjE1IiB5PSIxNSIgd2lkdGg9IjM0IiBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2VjZWJlNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGggZD0iTTEyIDNsOSA1LTkgNS05LTV6TTMgMTNsOSA1IDktNU0zIDE3LjVsOSA1IDktNSIvPgogIDwvc3ZnPgo8L3N2Zz4K"><link rel="stylesheet" href="style.css"><script src="app.js" defer></script></head>
|
|
3
|
+
<body data-page="architecture"><a class="skip-link" href="#content">Skip to content</a>
|
|
4
|
+
<header class="topbar"><a class="brand" href="index.html"><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4KICA8Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMCIgZmlsbD0iIzFlMWYxYSIgc3Ryb2tlPSIjM2Q0MDM2IiBzdHJva2Utd2lkdGg9IjIiLz4KICA8c3ZnIHg9IjE1IiB5PSIxNSIgd2lkdGg9IjM0IiBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2VjZWJlNCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGggZD0iTTEyIDNsOSA1LTkgNS05LTV6TTMgMTNsOSA1IDktNU0zIDE3LjVsOSA1IDktNSIvPgogIDwvc3ZnPgo8L3N2Zz4K" width="30" height="30" alt=""><strong>Code Flow</strong><span>Docs</span></a><button class="search-trigger" id="open-search">Search documentation <kbd>⌘ K</kbd></button><div class="top-actions"><a href="https://github.com/midhunxavier/code-flow">GitHub ↗</a><button id="theme" aria-label="Change color theme">Theme</button><button id="open-help" class="primary" hidden aria-expanded="false" aria-controls="help-panel">Ask code-flow</button><button id="menu" aria-label="Toggle documentation navigation" aria-expanded="false" aria-controls="sidebar">☰</button></div></header>
|
|
5
|
+
<div class="layout"><nav class="sidebar" id="sidebar" aria-label="Documentation"><section><h2>Get started</h2><a href="index.html" >Overview</a><a href="installation.html" >Install Code Flow preview</a><a href="getting-started.html" >Getting started</a><a href="patterns.html" >Team patterns</a><a href="acp-agents.html" >ACP coding agents</a><a href="help.html" >Ask code-flow</a></section><section><h2>Work with agents</h2><a href="runs.html" >Runs and workspace</a><a href="auto-team.html" >Team</a><a href="project-teams.html" >Project missions (preview)</a><a href="review-inbox.html" >Review inbox</a><a href="verification.html" >Verification and review</a><a href="github.html" >GitHub, review and shipping</a><a href="github-review-threads.html" >GitHub review threads</a><a href="task-reruns.html" >Selective task reruns</a><a href="deferred-runs.html" >Deferred runs</a></section><section><h2>Your workspace</h2><a href="configuration.html" >Configuration</a><a href="context-inspection.html" >Context and budgets</a><a href="project-conventions.html" >Versioned project conventions</a><a href="checkpoint-review.html" >Checkpoints and reversions</a><a href="launch-profiles.html" >Service launch profiles</a><a href="code-intelligence.html" >Code intelligence</a><a href="architecture-explorer.html" >Architecture explorer</a><a href="memory-storage.html" >Project memory</a><a href="memory-claims.html" >Semantic claim review</a><a href="coordinated-changes.html" >Coordinated changes</a></section><section><h2>Connect and collaborate</h2><a href="team-collaboration.html" >Team collaboration</a><a href="shared-projects.html" >Shared project accounts</a><a href="ssh-projects.html" >SSH projects</a><a href="remote-workers.html" >Remote agent workers</a><a href="code-hosts.html" >GitLab and Bitbucket code workflows</a><a href="external-sources.html" >Read-only external sources</a><a href="automations.html" >Automations and away mode</a><a href="notifications.html" >Outbound notifications</a></section><section><h2>Operate safely</h2><a href="security.html" >Security, subscriptions and caveats</a><a href="filesystem-policy.html" >Project filesystem policy</a><a href="agent-containers.html" >Agent containers</a><a href="filtered-tasks.html" >Filtered Docker tasks</a><a href="dependency-discovery.html" >Dependency discovery</a><a href="maintenance.html" >Backup and maintenance</a></section><section><h2>Build and extend</h2><a href="architecture.html" aria-current="page">Architecture and development</a><a href="api.html" >Local API and command-line client</a><a href="extensions.html" >Provider and workflow extensions</a><a href="provider-compatibility.html" >Provider compatibility</a><a href="accessibility.html" >Accessibility acceptance</a><a href="performance.html" >Performance</a><a href="run-storage.html" >Run storage</a><a href="documentation.html" >Documentation and GitHub Pages</a><a href="releasing.html" >Preparing a preview release</a><a href="vscode.html" >Code Flow for VS Code</a></section><section><h2>Engineering records</h2><a href="application-improvements.html" >Application improvement program</a><a href="project-first-navigation-plan.html" >Project navigation review and implementation plan</a><a href="dynamic-teams-evaluation.html" >Dynamic teams: implementation evidence and rollout decision</a><a href="dynamic-teams-implementation-plan.html" >Dynamic teams, workflows, messaging, and memory</a><a href="dynamic-teams-implementation-review-1.html" >Review 1: the dynamic teams implementation</a><a href="worker-permission-verification.html" >Live worker permission verification</a><a href="dynamic-teams-plan-review-0.html" >Review 0: Dynamic teams implementation plan</a><a href="project-teams-implementation-plan.html" >Standing project teams implementation plan</a><a href="performance-results.html" >Measured performance: 19 October 2026</a></section><a class="app-link" id="back-app" hidden href="/">← Back to app</a></nav>
|
|
6
|
+
<main id="content" tabindex="-1"><div class="breadcrumb">Documentation <span>/</span> Build and extend</div><article><h1 id="architecture-and-development">Architecture and development</h1>
|
|
7
|
+
<p>Use <code>npm run dev</code> for UI work without provider quota. Read the source layout below, then run type checking and the tests relevant to your change. The documentation site shares the app’s theme and builds alongside the UI.</p>
|
|
8
|
+
<h2 id="layout">Layout</h2>
|
|
9
|
+
<pre><code>ui/*.tsx UI: Preact + TypeScript, compiled against the server's own types
|
|
10
|
+
(app: shell and top bar · rail: the sidebar · composer · run: the run thread · review · insights · automations · projects
|
|
11
|
+
· project: a project's page · side: the side panel, its files and notes · side-chat, changes, terminal, browser: its other tabs
|
|
12
|
+
· panel-bits: what the tabs share (folders, the strip of open sessions, menus))
|
|
13
|
+
ui/bits.tsx small shared pieces: agent tags, the Markdown renderer, QR codes
|
|
14
|
+
ui/collab-*.tsx the Team page: the board and its inbox (collab-board), a task with its attempt, checkpoints, reviews and discussion (collab-task), Settings → Connections → Share access → People (collab-settings); collab-state.ts holds their signals and API helpers
|
|
15
|
+
ui/styles.css, ui/fonts the stylesheet (the paper theme, light and dark) and its font (Inter; licence included)
|
|
16
|
+
ui/theme.ts light or dark: follows the system until you pick one with the top bar's theme button
|
|
17
|
+
scripts/build-ui.mjs builds hashed ESM chunks and CSS, then atomically publishes public/index.html (npm start builds it)
|
|
18
|
+
scripts/check-node.mjs stops npm start and npm run dev on a Node older than 20, saying why
|
|
19
|
+
scripts/pty.py the Terminal's pseudo-terminal (Python 3 standard library, no native npm module): runs your login shell in a pty, relays its bytes, takes resizes and reports the shell's pid, its terminal and the foreground on fd 3; when it ends, it hangs up everything in the shell's session
|
|
20
|
+
src/server.ts HTTP API + SSE on 127.0.0.1 (Host/Origin checked, session cookie or Bearer token)
|
|
21
|
+
src/stream.ts one event stream per browser window (/api/stream), carrying every topic it watches: runs, run:<id>, shell:<id>
|
|
22
|
+
src/store.ts run logs and replay journal, per-run batched write queues, the one-server lock
|
|
23
|
+
src/work-queue.ts bounded concurrent work with ordering within each run
|
|
24
|
+
src/transcript.ts bounded reverse byte-offset transcript pages
|
|
25
|
+
src/sse-writer.ts byte-bounded backpressure-aware stream output
|
|
26
|
+
src/run-history.ts indexed summaries/search and stable cursor pagination
|
|
27
|
+
src/performance.ts bounded local runtime diagnostics
|
|
28
|
+
src/run-log.ts what a window is sent to show a run (its latest snapshots); run snapshots on disk as patches, and compacting old logs
|
|
29
|
+
src/teams.ts provider-independent team members, tasks, messages and context projections
|
|
30
|
+
src/memory.ts private/team/project memory, revisions, provenance and scoped retrieval
|
|
31
|
+
src/memory-sqlite.ts SQLite transactions, JSON migration, indexed keywords and evidence-linked graph
|
|
32
|
+
src/team-memory.ts run/project scope and Git applicability for memory retrieval and proposals
|
|
33
|
+
src/team-mailbox.ts validated atomic collaboration commands, requests and waits
|
|
34
|
+
src/team-scheduler.ts recorded completion batches with concurrent worker lifetimes
|
|
35
|
+
src/team-tools.ts expiring member capability service; stdio MCP client in team-tool-client.mjs
|
|
36
|
+
src/team-evaluation.ts immutable evaluations and evidence-gated rollout decisions
|
|
37
|
+
src/projects.ts projects: named groups of repos, and which project a new run goes in
|
|
38
|
+
src/log.ts code-flow's own log, ~/.codeflow/server.log (rotated at 5 MB)
|
|
39
|
+
src/env.ts the environment of everything code-flow starts: yours, minus its token, npm_* and its own node_modules/.bin
|
|
40
|
+
src/integrity.ts finds changes to tests that could make a check pass without a fix
|
|
41
|
+
src/diff.ts fits a long diff into a prompt (whole files first)
|
|
42
|
+
src/learnings.ts the repo's conventions files, and problems reviewers keep raising
|
|
43
|
+
src/slots.ts caps how many agents and checks run at once
|
|
44
|
+
src/stats.ts Insights: per agent, per pattern, comparisons; ranking for Auto
|
|
45
|
+
src/ship.ts per-file diffs, safe merges, pull requests, worktree cleanup
|
|
46
|
+
src/github.ts gh: issues, PRs, checks, failed-job logs, comments, pushes
|
|
47
|
+
src/watch.ts PR follow-through: polls watched PRs and sends CI failures and comments back
|
|
48
|
+
src/routing.ts "Auto" roles: pick an agent whose plan has room (and that passes most in this repo)
|
|
49
|
+
src/templates.ts starting points (fix an issue, fix failing CI, council review…) and sweeps
|
|
50
|
+
src/sweeps.ts sweeps: list issues, Dependabot PRs and alerts; start one run per picked item
|
|
51
|
+
src/automation.ts automations: schedules, webhooks (Bearer or GitHub signature), firing runs
|
|
52
|
+
src/tailscale.ts bounded, read-only Tailscale detection for the remote listener
|
|
53
|
+
src/remote.ts the phone link: read-only view (server-rendered), settings for full phone control
|
|
54
|
+
src/collab/*.ts the team board: model (types, bounds, validators, the task state machine), store (CODEFLOW_HOME/team/, atomic writes with a write-behind for heartbeats and progress only, authorization checked in the store), api (/api/team/* for owner, shared and runner principals, with its SSE stream), checkpoints (Git bundles whose only ref is refs/codeflow/team/<checkpoint id>, the id minted by the runner before bundling), hub-client (LocalHub and RemoteHub: the same runner code against the in-process store or a team server over HTTPS), link, runner and link-api (the linked computer: team-link.json, local attempt records, hand-overs, reconciliation and the recovery pass, /api/team-link/*)
|
|
55
|
+
src/engine.ts RunManager, TeamContext (ask / worktree / commit / diff), event log
|
|
56
|
+
src/patterns/*.ts the team patterns, written against TeamContext
|
|
57
|
+
src/adapters/*.ts AgentAdapter per CLI → normalized AgentEvent stream
|
|
58
|
+
src/git.ts every git call (bounded, never prompts), worktrees with their submodules, branches, commits, diffs, merges
|
|
59
|
+
src/repo-tree.ts file tree, search and file contents for the Files tab
|
|
60
|
+
src/shell.ts the side panel's Terminal: shells kept open, in a pseudo-terminal through scripts/pty.py (busy while a program other than the shell is in the foreground; never closed to make room while it has jobs in the background, found with ps); line-based with a marker after each command when there's no python3
|
|
61
|
+
src/preview.ts the side panel's Browser: a proxy per local app, on a port of its own, that adds the overlay (src/preview-overlay.js: pick, box, console, adjust), rewrites the app's Content-Security-Policy so only code-flow (and the app itself) can frame it, and keeps code-flow's cookies from the app
|
|
62
|
+
src/snapshot.ts the Browser's Snapshot: a screenshot of any address in a headless Chrome with a fresh profile, driven over its DevTools pipe (no debugging port), one at a time
|
|
63
|
+
src/notes.ts the side panel's Notes, ~/.codeflow/notes.json
|
|
64
|
+
src/context.ts validates and stages task context for agents
|
|
65
|
+
</code></pre>
|
|
66
|
+
<ul>
|
|
67
|
+
<li><strong>AgentAdapter</strong> (<code>src/adapters/types.ts</code>): <code>run({prompt, cwd, mode, resumeSessionId}, onEvent) → {ok, finalText, sessionId, errorKind, resetsAt}</code>. <code>sessionId</code> is only ever one the CLI confirmed in that turn, never a session that failed to resume. A failed turn says why in <code>errorKind</code> (<code>usage_limit</code>, <code>auth</code>, <code>session_not_found</code>, <code>cli_incompatible</code>, <code>stalled</code>, <code>transient</code>…), read from the CLI's own signals (<code>src/adapters/errors.ts</code>), and the engine retries, stops or starts a fresh session on that. Adapters convert each CLI's JSONL into <code>text | thinking | tool_call | tool_result | usage | status | error</code> events. An adapter whose turns take input while they run calls <code>onSteerable(steer)</code> once its turn can be steered. The engine then hands queued notes to <code>steer</code>. <code>src/adapters/codex-app-server.ts</code> turns app-server notifications into the events <code>codex exec --json</code> prints, so both Codex transports share one handler.</li>
|
|
68
|
+
<li><strong>TeamContext</strong> gives patterns a few primitives. <code>ask()</code> runs one agent turn as a visible step, and <code>resume</code> continues that agent's own conversation. <code>worktree()</code>, <code>commit()</code>, <code>diff()</code> and <code>artifact()</code> handle git. <code>parallel()</code> runs branches side by side (race contestants, workers, debaters); when one throws, the others are stopped and waited for, so nothing keeps running after the run ends. Structured hand-offs (review verdicts, judge picks, subtask lists) use a fenced <code>```json</code> block that <code>extractJson</code> parses. A pattern reads what changed through <code>changedFiles()</code> and <code>testChanges()</code>, not git directly: on a resume the worktree on disk already has the later commits, and these read at the commit the replay has reached.</li>
|
|
69
|
+
<li>Every event is appended to <code>~/.codeflow/runs/<run>.jsonl</code>. A run snapshot that follows another is written as what changed (<code>run-patch</code>: fields set or removed, and the new end of a string or list that kept its start), with a full snapshot first, each time the run stops running, and now and then; reading a log turns patches back into snapshots (<code>src/run-log.ts</code>). Logs from before this are compacted the same way once loaded, in the background, and only when they read back exactly as they were. Worktrees live in <code><repo>/.worktrees/<run-id>/</code> (see <a href="getting-started.html#worktrees-and-branches">Worktrees and branches</a>).</li>
|
|
70
|
+
<li><strong>Live updates</strong>: a browser allows 6 connections per host over HTTP/1.1, shared by all its tabs, and an event stream holds one while it's open. So there's one stream (<code>GET /api/stream</code>), with topics subscribed on it (<code>POST /api/stream/<client></code>), and the browser's windows share it (<code>ui/stream.ts</code>): the first to take a Web Lock holds it for all, the others send it what they watch and get their events over a BroadcastChannel, and when it closes the next one takes over (on the phone, over plain HTTP, there are no Web Locks: each window has its own). The topics are <code>runs</code> (the run list), <code>run:<id></code> (the run as it is now, then its latest snapshots, every agent event and log line, then live events; its cursor is the run's own, so it holds across a restart) and <code>shell:<id></code> (a terminal). A run shown in two places (the run view and a side chat) is one subscription (<code>ui/run-feed.ts</code>), panes that are hidden or closed unsubscribe, and a subscription that comes back (or a stream that reconnects) passes a cursor, so it gets only what it missed. The older per-feature streams (<code>/api/events</code>, <code>/api/runs/<id>/events</code>, <code>/api/shell/<id>/events</code>) still answer, for a page left open across an update.</li>
|
|
71
|
+
</ul>
|
|
72
|
+
<p><strong>Auto team</strong> uses the same engine with validated plans and bounded event-driven scheduling (with saved-wave compatibility) (<code>src/patterns/auto-team-model.ts</code>, <code>auto-team.ts</code>). Stable member IDs separate identity from provider; turn metadata binds settings, session, task, usage and selected context. Questions yield a turn rather than holding a slot. Accepted plans and admission decisions replay from the journal; strict journal failures stop dependent execution. A stopped workflow resumes through completed waves and final verification before beginning another user-authorized allocation. Project memory selections journal references, not bodies; replay resolves only still-applicable exact revisions. See <a href="auto-team.html">Auto team</a> for the public behavior and trust/retention boundaries.</p>
|
|
73
|
+
<h3 id="adding-a-pattern">Adding a pattern</h3>
|
|
74
|
+
<p>Write a <code>Pattern</code> (roles, options, <code>run(ctx)</code>) in <code>src/patterns/</code>, then add it to <code>src/patterns/index.ts</code>. The UI builds its form from the pattern definition.</p>
|
|
75
|
+
<p><code>ctx.artifact()</code> proves a result whose check passed (fail-to-pass, see <code>TeamContext.prove</code>), so a new pattern gets proofs without doing anything. To act on one before publishing, as Pipeline does before review, use <code>proveOrAsk()</code> from <code>src/patterns/prompts.ts</code>, and <code>proofEvidence()</code> to show it to a reviewer or judge.</p>
|
|
76
|
+
<p>A pattern with a reviewer asks for <code>REVIEW_SCHEMA</code> with <code>reproRule()</code> and <code>REVIEW_SHAPE</code>, then passes the verdict to <code>checkReview()</code> (all in <code>src/patterns/findings.ts</code>): it runs each finding's repro on the result (<code>TeamContext.reproduce</code>), records the review on the run, and marks what blocks approval (<code>blocks</code> in the engine). <code>approves()</code> is the gate, and <code>findingsForBuilder()</code> is what the builder gets back.</p>
|
|
77
|
+
<h3 id="adding-an-agent">Adding an agent</h3>
|
|
78
|
+
<p>For a CLI that speaks ACP v1 over stdio, use <a href="acp-agents.html">Settings → Agents & models</a>. The shared adapter in <code>src/adapters/acp.ts</code> handles transport and normalized events; <code>src/acp-connections.ts</code> persists owner-configured invocations and pins them to runs.</p>
|
|
79
|
+
<p>Implement <code>AgentAdapter</code> in <code>src/adapters/</code>, then register it in <code>src/adapters/index.ts</code>. Add a fake for it in <code>test/fake-agent.mjs</code>.</p>
|
|
80
|
+
<p>Owner-configured providers and workflows can also use <a href="extensions.html">versioned extensions</a> without modifying the built-in registry. They use namespaced IDs, explicit capability/API negotiation, reviewed bundle hashes and per-run version pins. Additional provider capabilities remain unknown until separately verified.</p>
|
|
81
|
+
<p>The HTTP boundaries for shared access, the team board and its linked runners, filesystem policy, coordinated changes, code hosts and workspace operations live in separate modules. SSH framing/artifacts/receipts, durable queues, memory claim analysis and Git shipping each have independent contracts and focused tests. <a href="run-storage.html">Run storage</a> separates recovery/projection from execution and bounds archived detail hydration. These boundaries retain server-owned authority and replay identities rather than moving them into client request bodies.</p>
|
|
82
|
+
<h2 id="development">Development</h2>
|
|
83
|
+
<p><code>npm start</code> is your server (port 4317, <code>~/.codeflow</code>). <code>npm run dev</code> is a development server (port 4318, <code>.codeflow-dev/</code>) with <strong>fake agents</strong>, so working on code-flow never touches your real runs or quota. It puts <code>test/fake-bin</code> on <code>PATH</code> by absolute path and refuses to start if <code>claude</code>, <code>codex</code> or <code>agy</code> would still resolve to a real CLI. <code>npm run dev:real</code> is the same dev server with the real CLIs. Both rebuild the UI and restart the server as you edit.</p>
|
|
84
|
+
<pre><code class="language-bash">npm run dev # http://localhost:4318, fake agents
|
|
85
|
+
npm run typecheck
|
|
86
|
+
</code></pre>
|
|
87
|
+
<h2 id="tests">Tests</h2>
|
|
88
|
+
<pre><code class="language-bash">npm test # unit + workflow tests against fake CLIs
|
|
89
|
+
npm run test:e2e # the real UI in Chrome (headless) against a server with fake agents
|
|
90
|
+
</code></pre>
|
|
91
|
+
<p>CI (<code>.github/workflows/ci.yml</code>) runs the typecheck and <code>npm test</code> on every push and pull request: Ubuntu with Node 22.13 and 24, macOS with Node 22. The required browser job exercises critical workflows and accessibility. A separate job tests the packaged VS Code extension in the actual editor host. <a href="provider-compatibility.html">Provider compatibility</a> continuously probes official version/help contracts without account or inference requests.</p>
|
|
92
|
+
<p>The suite runs every pattern end to end against fake <code>claude</code> / <code>codex</code> / <code>agy</code> binaries (<code>test/fake-bin</code>). Each fake emits that vendor's real JSONL format, so tests cost no quota.</p>
|
|
93
|
+
<ul>
|
|
94
|
+
<li>The fake <code>codex</code> also serves the app-server protocol (<code>test/fake-codex-app-server.mjs</code>). Its threads persist across processes, so resume and per-turn token counts are tested. A prompt containing <code>WAIT-FOR-STEER</code> keeps a turn open until a note is steered in. <code>test/codex-app-server.test.ts</code> covers mid-turn notes, declined approvals, cancellation, and the <code>exec</code> fallback.</li>
|
|
95
|
+
<li>A fake <code>gh</code> keeps issues, PRs, checks, comments and security alerts in a JSON file and pushes to a local bare repository, so the GitHub flows (fix CI → push → watch → fix again, and sweeps of issues, Dependabot PRs and alerts) are tested without touching GitHub.</li>
|
|
96
|
+
<li>A fake <code>docker</code> records arguments for deterministic orchestration tests. Opt-in native Docker cases separately test actual filesystem mounts, credentials and cancellation; fixtures alone do not establish container isolation.</li>
|
|
97
|
+
<li>The suite covers review loops, races with a failing contestant, critique rounds, merge-conflict resolution, and the guarantee that your checkout is untouched.</li>
|
|
98
|
+
<li><code>test/ship.test.ts</code> covers side chats too: sessions and messages kept apart from the run's thread, a budget of their own behind the team, an Ask that keeps the verdict and your edits, and files sent to a run whose worktrees were removed.</li>
|
|
99
|
+
</ul>
|
|
100
|
+
<p><code>test/hardening.test.ts</code> covers the guarantees about processes, runs and tests:</p>
|
|
101
|
+
<ul>
|
|
102
|
+
<li>a background process an agent leaves behind neither hangs a step nor survives it;</li>
|
|
103
|
+
<li>a run can't be resumed twice at once;</li>
|
|
104
|
+
<li>a commit made in a read-only step is undone;</li>
|
|
105
|
+
<li>a loop doesn't accept a pass made by deleting the failing test;</li>
|
|
106
|
+
<li>race commits name no vendor;</li>
|
|
107
|
+
<li>the builder's test edits are undone;</li>
|
|
108
|
+
<li>retries, usage-limit stops and token accounting work.</li>
|
|
109
|
+
</ul>
|
|
110
|
+
<p>Reliability has tests of its own:</p>
|
|
111
|
+
<ul>
|
|
112
|
+
<li><code>test/foundation.test.ts</code>: the child environment, numeric settings, bounded git, the repo lock, and orphaned processes reaped at the next start;</li>
|
|
113
|
+
<li><code>test/store-reliability.test.ts</code>: a failed write can't corrupt the next line of a run log; the server lock is taken over from a reused pid or a previous boot, and of several servers starting at once exactly one gets it;</li>
|
|
114
|
+
<li><code>test/stream.test.ts</code> and <code>test/run-log.test.ts</code>: a window's one stream (subscriptions changed while it's open, topics that can't be watched, a cursor from another server start), a run's replay with only its latest snapshots (and how many fewer bytes that is), snapshots written as patches that read back exactly, full ones where they belong, and old logs compacted on load. <code>test/stream-client.test.ts</code> is the UI's side (requests batched, a refused topic not asked for again, reconnecting with cursors), and <code>test/e2e/connections.e2e.ts</code> opens a run view, a side chat, two terminals and a second tab in one browser and checks requests and keystrokes still go through, hidden panes stop watching, and the stream passes to the other tab when its tab closes;</li>
|
|
115
|
+
<li><code>test/git-reliability.test.ts</code>: worktrees get their submodules (nested, in parallel, or a warning when one can't be cloned), and the Files tab's git calls;</li>
|
|
116
|
+
<li><code>test/side-panel.test.ts</code>: the side panel's server side: reading a file (and never one outside the repo), notes that persist, shells whose <code>cd</code> holds between commands and whose exit codes come back, a new shell never closing a busy one or one with a job in the background, terminals that hang up their <code>nohup</code>'d and disowned jobs when code-flow stops and that still start in a repo pinning a Python its version manager doesn't have, the list of running apps, and the browser's preview proxy (the overlay added, frames allowed, the app's own host and origin, WebSockets, and the Host check);</li>
|
|
117
|
+
<li><code>test/preview.test.ts</code>: the preview proxy against a stand-in dev server: where the overlay goes in a page, the app's policy kept but frameable, the host name and code-flow's cookies, compressed pages, connections that close when the browser's do, and the overlay itself in headless Chrome (Box doesn't click through, no passwords in snapshots, console reports; skipped without Chrome);</li>
|
|
118
|
+
<li><code>test/snapshot.test.ts</code>: Snapshot's checks on the address and size, the viewport and the whole page checked pixel by pixel (a desktop page at phone width zoomed out, not cut off), one Chrome at a time, a page that can't be opened, an <code>alert()</code>, a Chrome that dies (and the next snapshot still working), and no profiles left behind (skipped without Chrome);</li>
|
|
119
|
+
<li><code>test/browser.test.ts</code> and <code>test/chat-views.test.ts</code>: the side panel's UI logic, bundled with esbuild: which addresses the Browser believes from the page, where pins can be sent and how they're named, comment drafts shared by the review and the Changes tab, and side chats kept out of the run's thread;</li>
|
|
120
|
+
<li><code>test/engine-reliability.test.ts</code>: parallel branches that stop together, steps that always end, read-only that fails closed, worktrees set up again after an interrupted setup, retries that continue instead of redoing, dead sessions, usage limits with reset times, lockdown without network, and unique run ids;</li>
|
|
121
|
+
<li><code>test/engine-review.test.ts</code>: a Test-first run stopped in its second round and resumed ends with the same tree as one that wasn't, Stop reaching a resume that's starting, a second conflict resolution committed on its own, signed-out contestants not journaled and usage limits stopping a race, notes no turn took, the council restoring confirmed findings, reviewers' commands that never ran their test, slot waits outside the time budget, and archiving (refused while busy; the run's folder and fetched PR head cleaned up);</li>
|
|
122
|
+
<li><code>test/security-review.test.ts</code>: a webhook caller's text fenced and its run marked, signed deliveries sent again with a new id, the app page's framing and caching headers, the first-browser claim ending at any sign-in, and Snapshot keeping away from loopback and metadata addresses;</li>
|
|
123
|
+
<li><code>test/adapters-review.test.ts</code> and <code>test/github-review.test.ts</code>: Claude's read-only git that can't write files, error kinds read from the CLI's own error line, events a CLI prints that code-flow doesn't know, Codex falling back when resume rejects a parameter, <code>gh</code> output decoded whole, code scanning messages fenced, copied secrets kept out of commits, copies that never go through a symbolic link, merges refused mid-rebase, slow post-merge hooks, and quiet PR watches polled less often;</li>
|
|
124
|
+
<li><code>test/ui-review.test.ts</code>: the run's own check winning over the repo's on Edit & run again, stale Files answers dropped, <code>safeHref</code>, and the Markdown renderer keeping raw HTML and <code>javascript:</code> links as text;</li>
|
|
125
|
+
<li><code>test/adapters-reliability.test.ts</code> and <code>test/health-routing.test.ts</code>: the stall watchdog, the grace after a result, crashes mid-stream, dead sessions, unknown flags, huge lines, typed errors, Health's flag checks, and Auto skipping a signed-out CLI. The fakes simulate these with <code>FAKE_SLEEP_VENDOR</code>, <code>FAKE_HANG_AFTER_RESULT_VENDOR</code>, <code>FAKE_CRASH_VENDOR</code>, <code>FAKE_UNKNOWN_FLAG</code>, <code>FAKE_HUGE_LINE_MB</code>, <code>FAKE_CLAUDE_RESETS_AT</code>, and for app-server <code>FAKE_CODEX_SLOW_INIT_MS</code>, <code>FAKE_CODEX_INIT_CRASH</code>, <code>FAKE_CODEX_HANG_METHOD</code> and <code>FAKE_CODEX_SERVER_REQUEST</code>.</li>
|
|
126
|
+
</ul>
|
|
127
|
+
<p>The GitHub tests cover untrusted issues (lockdown, fenced text, Docker or your confirmation) and PR watches that act only on comments from you and the people you allow. The e2e test also covers sign-in, Insights and run search. Its terminals run bash with a home of their own, so your dotfiles and shell history stay out of it.</p>
|
|
128
|
+
<h2 id="whats-next">What's next</h2>
|
|
129
|
+
<ul>
|
|
130
|
+
<li>Real approvals through <code>codex app-server</code> (it already declines approval requests): ask you in the UI instead.</li>
|
|
131
|
+
<li>A container option for the agents themselves (today only checks and setup run in Docker).</li>
|
|
132
|
+
<li>Read PR line comments (review threads), not just conversation comments and review summaries.</li>
|
|
133
|
+
<li>Linear as a source, next to GitHub issues.</li>
|
|
134
|
+
</ul>
|
|
135
|
+
<h2 id="dynamic-team-control-and-replay">Dynamic team control and replay</h2>
|
|
136
|
+
<p>A live tool command and its receipt are fsynced together before acknowledgement. The scheduler records which command batch it consumes at each boundary, so replay cannot inject a future reply into an earlier task. Completion batches likewise record observed order before serial integration. One server owns the journal; no dispatch lease or outbox is needed. See the <a href="dynamic-teams-implementation-plan.html">implementation plan</a> for the invariants.</p>
|
|
137
|
+
<p>The scoped loopback bridge is separate from the user API and its bearer token. Official adapters receive a temporary stdio MCP configuration for supported turns. Memory tools inherit the active member, project, task and source provenance from the engine. Native spawning controls, sandbox support and nested usage limitations are exposed through the capability inventory. Supervisor shares decomposition/integration primitives while retaining its public ID and historical replay identities.</p>
|
|
138
|
+
<p>See <a href="performance.html">Performance and resource boundaries</a> for the paged UI stream, lazy assets, worker reuse, storage ordering, diagnostics and load benchmark.</p>
|
|
139
|
+
<h2 id="documentation-system">Documentation system</h2>
|
|
140
|
+
<p><code>scripts/build-docs.mjs</code> renders the Markdown guides into <code>public/docs</code> for the local application and <code>dist/docs</code> for static hosting. The build reads the theme/font section from <code>ui/styles.css</code>, so documentation colors and typography follow the app. <code>docs/site</code> contains the navigation groups and the small browser layer for search, appearance and help. The application menu and command palette both link to <code>/docs/</code>.</p>
|
|
141
|
+
<p><code>src/docs-help.ts</code> serves the local files and runs bounded, owner-authenticated CLI questions using the same provider adapters as the application. Source selection is deterministic local keyword retrieval; there is no embedding service or hosted AI backend. Static builds omit the local capability marker. The host packager includes the documentation's UTF-8 assets, with screenshots/fonts embedded in the generated files.</p>
|
|
142
|
+
<p>See <a href="documentation.html">Documentation and GitHub Pages</a> for authoring, preview, screenshot capture and deployment. <code>npm run test:docs</code> checks guide links and the help service; <code>test/e2e/docs.e2e.ts</code> exercises local and static browser behavior.</p>
|
|
143
|
+
<hr>
|
|
144
|
+
<p><a href="index.html">Documentation library</a> · <a href="getting-started.html">Getting started</a> · <a href="help.html">Ask code-flow</a></p>
|
|
145
|
+
</article><footer><a href="https://github.com/midhunxavier/code-flow/blob/main/docs/architecture.md">Edit this page on GitHub ↗</a><span>code-flow · 0.1.0-preview.3 · <a href="font-license.txt">Font license</a></span></footer><nav class="pagination" aria-label="Adjacent guides"><a href="maintenance.html"><small>← Previous</small>Backup and maintenance</a><a href="api.html"><small>Next →</small>Local API and command-line client</a></nav></main>
|
|
146
|
+
<aside class="on-page" aria-label="On this page"><strong>On this page</strong><a class="depth-2" href="#layout">Layout</a><a class="depth-3" href="#adding-a-pattern">Adding a pattern</a><a class="depth-3" href="#adding-an-agent">Adding an agent</a><a class="depth-2" href="#development">Development</a><a class="depth-2" href="#tests">Tests</a><a class="depth-2" href="#whats-next">What's next</a><a class="depth-2" href="#dynamic-team-control-and-replay">Dynamic team control and replay</a><a class="depth-2" href="#documentation-system">Documentation system</a></aside>
|
|
147
|
+
<aside id="help-panel" hidden aria-labelledby="help-title"><div class="chat-heading"><div><span class="eyebrow">Your AI companion</span><h2 id="help-title">Ask code-flow</h2></div><button id="close-help" aria-label="Close AI companion">✕</button></div><div class="chat-toolbar"><span>Grounded in your docs</span><button id="new-chat">New chat</button></div><div id="help-messages" role="log" aria-label="Help conversation" aria-live="polite"><div id="chat-welcome"><span class="chat-mark" aria-hidden="true">✦</span><h3>What would you like to do?</h3><p>Let’s find your next step. Ask about setup, workflows or something that’s unclear.</p><div class="suggestions"><button type="button" data-question="How do I start my first run?">Start my first run ↗</button><button type="button" data-question="What should I do when a check fails?">Understand a failed check ↗</button></div></div></div><p id="help-status" role="status">Checking your installed CLIs…</p><button id="retry-help" hidden>Retry connection</button><form id="help-form" hidden><label class="sr-only" for="question">Your question</label><textarea id="question" rows="3" maxlength="4000" placeholder="Ask a question…" required></textarea><div class="composer-controls"><label class="sr-only" for="help-agent">Use your CLI</label><select id="help-agent"></select><button type="button" id="stop-help" hidden>Stop</button><button class="primary" id="send-help" aria-label="Send message">Send ↗</button></div><small>Uses your CLI login and quota. Shift + Enter for a new line.</small></form><a id="help-guide" href="help.html">About your local companion →</a></aside></div>
|
|
148
|
+
<dialog id="search-dialog" aria-labelledby="search-title"><div class="dialog-title"><h2 id="search-title">Search documentation</h2><button data-close="search-dialog" aria-label="Close search">✕</button></div><label class="sr-only" for="search">Search all guides</label><input id="search" type="search" placeholder="Search workflows, settings, troubleshooting…" autocomplete="off"><div id="search-results" aria-live="polite"></div></dialog>
|
|
149
|
+
</body></html>
|