@profoundlogic/coderflow-server 0.2.1

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.
Files changed (202) hide show
  1. package/LICENSE.txt +322 -0
  2. package/README.md +158 -0
  3. package/dist/LICENSE.txt +322 -0
  4. package/dist/README.md +158 -0
  5. package/dist/base-image/Dockerfile +184 -0
  6. package/dist/base-image/agent-wrapper.sh +143 -0
  7. package/dist/base-image/apply-local-state.sh +357 -0
  8. package/dist/base-image/coder-git-credential-helper +307 -0
  9. package/dist/base-image/entrypoint.sh +942 -0
  10. package/dist/base-image/ssh_config_template +41 -0
  11. package/dist/base-image/start-code-server.sh +76 -0
  12. package/dist/base-image/sync-repos.sh +170 -0
  13. package/dist/base-image/vscode-extensions.txt +10 -0
  14. package/dist/base-image/vscode-settings.json +41 -0
  15. package/dist/coder-server.js +2 -0
  16. package/dist/config/cli-models.json +45 -0
  17. package/dist/config/imported-skills.schema.json +83 -0
  18. package/dist/config/skill-catalog.json +18 -0
  19. package/dist/config/skill-catalog.schema.json +140 -0
  20. package/dist/config.js +1 -0
  21. package/dist/examples/oidc.json.example +11 -0
  22. package/dist/lib/agent-keepalive.js +1 -0
  23. package/dist/lib/api-keys.js +1 -0
  24. package/dist/lib/apiKeys.js +1 -0
  25. package/dist/lib/auto-judge.js +1 -0
  26. package/dist/lib/basic-auth.js +1 -0
  27. package/dist/lib/build-history.js +1 -0
  28. package/dist/lib/build-output-service.js +1 -0
  29. package/dist/lib/build-scheduler.js +1 -0
  30. package/dist/lib/build-service.js +1 -0
  31. package/dist/lib/claude-oauth-refresh.js +1 -0
  32. package/dist/lib/cli/build.js +1 -0
  33. package/dist/lib/cli/config-command.js +1 -0
  34. package/dist/lib/cli/config.js +1 -0
  35. package/dist/lib/cli/create-user.js +1 -0
  36. package/dist/lib/cli/init.js +1 -0
  37. package/dist/lib/cli/jira.js +1 -0
  38. package/dist/lib/cli/license.js +1 -0
  39. package/dist/lib/cli/server-manager.js +1 -0
  40. package/dist/lib/container-tokens.js +1 -0
  41. package/dist/lib/data-dir.js +1 -0
  42. package/dist/lib/deployment-history.js +1 -0
  43. package/dist/lib/deployment-service.js +1 -0
  44. package/dist/lib/docker-utils.js +1 -0
  45. package/dist/lib/email.js +1 -0
  46. package/dist/lib/emailTemplates.js +1 -0
  47. package/dist/lib/entitlement.js +1 -0
  48. package/dist/lib/fetch-utils.js +1 -0
  49. package/dist/lib/git-provider-service.js +1 -0
  50. package/dist/lib/git-provider-setup/assets/coderflow_github_app.png +0 -0
  51. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -0
  52. package/dist/lib/git-provider-setup/index.js +1 -0
  53. package/dist/lib/git-provider-setup/setup-factory.js +1 -0
  54. package/dist/lib/git-provider-setup/setup-interface.js +1 -0
  55. package/dist/lib/git-providers/azure-devops-provider.js +1 -0
  56. package/dist/lib/git-providers/github-app-provider.js +1 -0
  57. package/dist/lib/git-providers/index.js +1 -0
  58. package/dist/lib/git-providers/provider-factory.js +1 -0
  59. package/dist/lib/git-providers/provider-interface.js +1 -0
  60. package/dist/lib/jira-client.js +1 -0
  61. package/dist/lib/logger.js +1 -0
  62. package/dist/lib/model-fetcher.js +1 -0
  63. package/dist/lib/notifications.js +1 -0
  64. package/dist/lib/oidc-auth.js +1 -0
  65. package/dist/lib/oidc-device-flow.js +1 -0
  66. package/dist/lib/passwordTokens.js +1 -0
  67. package/dist/lib/pin-cascade.js +1 -0
  68. package/dist/lib/provider-accounts.js +1 -0
  69. package/dist/lib/provider-oauth.js +1 -0
  70. package/dist/lib/provider-profile.js +1 -0
  71. package/dist/lib/provider-token-refresh.js +1 -0
  72. package/dist/lib/roles.js +1 -0
  73. package/dist/lib/secrets.js +1 -0
  74. package/dist/lib/state-capture.js +1 -0
  75. package/dist/lib/static-files.js +1 -0
  76. package/dist/lib/task-name-generator.js +1 -0
  77. package/dist/lib/users.js +1 -0
  78. package/dist/middleware/requireAuth.js +1 -0
  79. package/dist/middleware/requireInit.js +1 -0
  80. package/dist/middleware/requirePermission.js +1 -0
  81. package/dist/package-lock.json +4151 -0
  82. package/dist/package.json +50 -0
  83. package/dist/routes/apiKeys.js +1 -0
  84. package/dist/routes/auth-oidc.js +1 -0
  85. package/dist/routes/auth.js +1 -0
  86. package/dist/routes/build.js +1 -0
  87. package/dist/routes/containers.js +1 -0
  88. package/dist/routes/deploy-task.js +1 -0
  89. package/dist/routes/environment-management.js +1 -0
  90. package/dist/routes/environments.js +1 -0
  91. package/dist/routes/external-skills.js +1 -0
  92. package/dist/routes/git-credentials.js +1 -0
  93. package/dist/routes/git-provider-setup.js +1 -0
  94. package/dist/routes/health.js +1 -0
  95. package/dist/routes/jira.js +1 -0
  96. package/dist/routes/objective-management.js +1 -0
  97. package/dist/routes/password.js +1 -0
  98. package/dist/routes/prompt.js +1 -0
  99. package/dist/routes/provider-auth.js +1 -0
  100. package/dist/routes/qa.js +1 -0
  101. package/dist/routes/settings.js +1 -0
  102. package/dist/routes/skill-management.js +1 -0
  103. package/dist/routes/skills.js +1 -0
  104. package/dist/routes/tasks.js +2 -0
  105. package/dist/routes/templates.js +1 -0
  106. package/dist/routes/test-task.js +1 -0
  107. package/dist/routes/test.js +1 -0
  108. package/dist/routes/users.js +1 -0
  109. package/dist/routes/visualizations.js +1 -0
  110. package/dist/schemas/template-metadata.schema.json +178 -0
  111. package/dist/scripts/create-user.js +2 -0
  112. package/dist/shipped-skills/environment-instructions/SKILL.md +154 -0
  113. package/dist/shipped-skills/environment-templates/SKILL.md +282 -0
  114. package/dist/shipped-skills/objective-management/SKILL.md +238 -0
  115. package/dist/shipped-skills/skill-editor/SKILL.md +326 -0
  116. package/dist/start.js +2 -0
  117. package/dist/web-ui/public/activity-detail-modal.js +1 -0
  118. package/dist/web-ui/public/activity-feed.js +1 -0
  119. package/dist/web-ui/public/activity-formatters.js +1 -0
  120. package/dist/web-ui/public/agent-event-parser.js +1 -0
  121. package/dist/web-ui/public/app.js +1 -0
  122. package/dist/web-ui/public/approve-dialog.js +1 -0
  123. package/dist/web-ui/public/coderflow-logo-reversed.svg +46 -0
  124. package/dist/web-ui/public/coderflow-logo.svg +46 -0
  125. package/dist/web-ui/public/comments-widget.js +1 -0
  126. package/dist/web-ui/public/docs/.nojekyll +0 -0
  127. package/dist/web-ui/public/docs/README.md +26 -0
  128. package/dist/web-ui/public/docs/_sidebar.md +47 -0
  129. package/dist/web-ui/public/docs/admin/ai-providers.md +132 -0
  130. package/dist/web-ui/public/docs/admin/email-notifications.md +69 -0
  131. package/dist/web-ui/public/docs/admin/environments.md +215 -0
  132. package/dist/web-ui/public/docs/admin/git-providers.md +147 -0
  133. package/dist/web-ui/public/docs/admin/installation.md +313 -0
  134. package/dist/web-ui/public/docs/admin/skills.md +35 -0
  135. package/dist/web-ui/public/docs/admin/sso.md +241 -0
  136. package/dist/web-ui/public/docs/admin/users-and-roles.md +57 -0
  137. package/dist/web-ui/public/docs/code/cli.md +102 -0
  138. package/dist/web-ui/public/docs/code/files-and-editing.md +86 -0
  139. package/dist/web-ui/public/docs/code/terminal-access.md +110 -0
  140. package/dist/web-ui/public/docs/code/vscode-extension.md +58 -0
  141. package/dist/web-ui/public/docs/getting-started/core-concepts.md +129 -0
  142. package/dist/web-ui/public/docs/getting-started/overview.md +46 -0
  143. package/dist/web-ui/public/docs/index.html +151 -0
  144. package/dist/web-ui/public/docs/integrations/custom.md +58 -0
  145. package/dist/web-ui/public/docs/integrations/ibmi/overview.md +58 -0
  146. package/dist/web-ui/public/docs/integrations/overview.md +48 -0
  147. package/dist/web-ui/public/docs/objectives/qa-mode.md +90 -0
  148. package/dist/web-ui/public/docs/objectives/staged-tasks.md +60 -0
  149. package/dist/web-ui/public/docs/objectives/working-with-objectives.md +102 -0
  150. package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +83 -0
  151. package/dist/web-ui/public/docs/tasks/creating-tasks.md +111 -0
  152. package/dist/web-ui/public/docs/tasks/judging.md +114 -0
  153. package/dist/web-ui/public/docs/tasks/providing-feedback.md +41 -0
  154. package/dist/web-ui/public/docs/tasks/task-groups.md +73 -0
  155. package/dist/web-ui/public/docs/tasks/winner-selection.md +75 -0
  156. package/dist/web-ui/public/docs/templates/batch-processing.md +152 -0
  157. package/dist/web-ui/public/docs/templates/task-templates.md +44 -0
  158. package/dist/web-ui/public/docs/templates/template-examples.md +93 -0
  159. package/dist/web-ui/public/docs/testing/profound-automated-testing.md +77 -0
  160. package/dist/web-ui/public/docs/testing/task-visualizations.md +42 -0
  161. package/dist/web-ui/public/docs/testing/testing-menu.md +118 -0
  162. package/dist/web-ui/public/environments.css +3942 -0
  163. package/dist/web-ui/public/environments.html +1791 -0
  164. package/dist/web-ui/public/environments.js +1 -0
  165. package/dist/web-ui/public/favicon-16.png +0 -0
  166. package/dist/web-ui/public/favicon-32.png +0 -0
  167. package/dist/web-ui/public/favicon.ico +0 -0
  168. package/dist/web-ui/public/feedback-widget.css +3133 -0
  169. package/dist/web-ui/public/feedback-widget.js +1 -0
  170. package/dist/web-ui/public/git-history.css +2663 -0
  171. package/dist/web-ui/public/git-history.html +272 -0
  172. package/dist/web-ui/public/git-history.js +1 -0
  173. package/dist/web-ui/public/git-status.js +1 -0
  174. package/dist/web-ui/public/index.html +1459 -0
  175. package/dist/web-ui/public/index.js +1 -0
  176. package/dist/web-ui/public/login.html +346 -0
  177. package/dist/web-ui/public/login.js +1 -0
  178. package/dist/web-ui/public/markdown-editor.js +1 -0
  179. package/dist/web-ui/public/markdown-file-editor.js +1 -0
  180. package/dist/web-ui/public/modal-maximize.js +1 -0
  181. package/dist/web-ui/public/notifications.js +1 -0
  182. package/dist/web-ui/public/server-health.js +1 -0
  183. package/dist/web-ui/public/settings.css +761 -0
  184. package/dist/web-ui/public/settings.html +1044 -0
  185. package/dist/web-ui/public/settings.js +1 -0
  186. package/dist/web-ui/public/setup-password.html +355 -0
  187. package/dist/web-ui/public/setup-password.js +1 -0
  188. package/dist/web-ui/public/skills.css +1949 -0
  189. package/dist/web-ui/public/skills.html +820 -0
  190. package/dist/web-ui/public/skills.js +1 -0
  191. package/dist/web-ui/public/sse-client.js +1 -0
  192. package/dist/web-ui/public/sse-shared-worker.js +1 -0
  193. package/dist/web-ui/public/styles.css +18614 -0
  194. package/dist/web-ui/public/task.html +1779 -0
  195. package/dist/web-ui/public/task.js +1 -0
  196. package/dist/web-ui/public/terminal.html +45 -0
  197. package/dist/web-ui/public/terminal.js +1 -0
  198. package/dist/web-ui/public/theme.js +1 -0
  199. package/dist/web-ui/public/users.html +298 -0
  200. package/dist/web-ui/public/users.js +1 -0
  201. package/dist/web-ui/public/variant-grouping.js +1 -0
  202. package/package.json +63 -0
@@ -0,0 +1,93 @@
1
+ # Template Examples
2
+
3
+ Templates can automate many types of repetitive work. Here are common use cases that show how templates turn manual, one-at-a-time tasks into scalable operations.
4
+
5
+ ## Code Modernization
6
+
7
+ ### Legacy RPG to Modern RPG
8
+
9
+ Convert fixed-format RPG to modern free-format RPG:
10
+
11
+ - **Parameter**: Source file to convert
12
+ - **Instructions**: Analyze the program, convert to free-format syntax, update data definitions, add documentation
13
+ - **Validation**: Compile the converted program, run Profound Automated Testing to verify behavior matches original
14
+ - **Batch**: Select all programs in a library and convert them in parallel
15
+
16
+ ### Language Migration
17
+
18
+ Convert from legacy languages to modern platforms:
19
+
20
+ - **Parameter**: Source program
21
+ - **Instructions**: Analyze code structure, convert to target language (Node.js, .NET, Java), adapt platform-specific patterns
22
+ - **Validation**: Run Profound Automated Testing to ensure functional equivalence
23
+ - **Batch**: Migrate complete applications program by program
24
+
25
+ ## Refactoring
26
+
27
+ ### Code Pattern Updates
28
+
29
+ Apply consistent refactoring across a codebase:
30
+
31
+ - **Parameter**: File to refactor
32
+ - **Instructions**: Find deprecated patterns, replace with modern equivalents, update imports/dependencies
33
+ - **Validation**: Run tests, verify compilation
34
+ - **Batch**: Apply the same refactoring to every file matching a pattern
35
+
36
+ ### API Modernization
37
+
38
+ Update legacy API calls to modern interfaces:
39
+
40
+ - **Parameter**: Program using legacy APIs
41
+ - **Instructions**: Identify deprecated API calls, update to current versions, handle signature changes
42
+ - **Validation**: Test API interactions, verify responses
43
+ - **Batch**: Update all programs using the legacy API
44
+
45
+ ## Testing
46
+
47
+ ### Test Generation
48
+
49
+ Generate tests for existing code:
50
+
51
+ - **Parameter**: Program or module to test
52
+ - **Instructions**: Analyze code paths, generate unit tests covering key scenarios, create test data
53
+ - **Output**: Test files ready for integration
54
+ - **Batch**: Generate tests for all modules in a project
55
+
56
+ ### Test Expansion
57
+
58
+ Add coverage for edge cases:
59
+
60
+ - **Parameter**: Existing test file
61
+ - **Instructions**: Analyze current coverage, identify gaps, add tests for boundary conditions and error paths
62
+ - **Batch**: Expand coverage across entire test suite
63
+
64
+ ## Documentation
65
+
66
+ ### Code Documentation
67
+
68
+ Generate documentation from source code:
69
+
70
+ - **Parameter**: Source file or module
71
+ - **Instructions**: Analyze code structure, document functions/procedures, explain business logic, create usage examples
72
+ - **Output**: Markdown documentation files
73
+ - **Batch**: Document entire libraries or applications
74
+
75
+ ### API Documentation
76
+
77
+ Generate API reference documentation:
78
+
79
+ - **Parameter**: API endpoint or service definition
80
+ - **Instructions**: Extract endpoint details, document parameters and responses, provide example requests
81
+ - **Batch**: Document all endpoints in a service
82
+
83
+ ## Building Effective Templates
84
+
85
+ When creating templates for these use cases:
86
+
87
+ 1. **Start specific**: Write instructions that work perfectly for one item
88
+ 2. **Test thoroughly**: Validate the template produces correct results
89
+ 3. **Parameterize carefully**: Only expose parameters users need to change
90
+ 4. **Include validation**: Add steps for testing and verification
91
+ 5. **Scale gradually**: Start with small batches before processing hundreds
92
+
93
+ See **Task Templates** for how to run templates, and **Batch Processing** for scaling to large operations.
@@ -0,0 +1,77 @@
1
+ # Profound Automated Testing
2
+
3
+ Profound Automated Testing verifies that refactored code behaves identically to the original. Tests are recorded once against your original application, then replayed automatically against refactored versions to detect any discrepancies in screens or data.
4
+
5
+ This is especially valuable for agent-driven refactoring tasks—like converting legacy RPG to modern RPG, or migrating from one language to another—where you need confidence that functionality remains intact.
6
+
7
+ ## How It Works
8
+
9
+ ### 1. Record Against the Original
10
+
11
+ Before refactoring begins, tests are recorded against your original application:
12
+
13
+ - Interact with the application (5250/Genie screens or Rich Display interfaces)
14
+ - The system captures JSON payloads representing the UI state at each step
15
+ - Database changes are also tracked at each step
16
+ - This creates a baseline without writing any test code
17
+
18
+ ### 2. Validate to Establish Baseline
19
+
20
+ Run the recorded test against the original environment to establish expected outcomes:
21
+
22
+ - Data hashes are captured for each database table at every step
23
+ - These hashes become the reference for future comparisons
24
+ - Any dynamic elements (like timestamps) are accounted for
25
+
26
+ ### 3. Replay Against Refactored Code
27
+
28
+ When an agent refactors code, the tests replay automatically:
29
+
30
+ - The same interactions run against the refactored application
31
+ - UI payloads are compared against the baseline
32
+ - Database changes are compared using the captured hashes
33
+ - Any differences are flagged—altered screens, missing data, unexpected changes
34
+
35
+ ### 4. Review Results
36
+
37
+ After replay, you can see exactly what matched and what differed:
38
+
39
+ - Which screens rendered correctly
40
+ - Which data changes matched expectations
41
+ - Where discrepancies occurred and why
42
+
43
+ ## Agent Integration
44
+
45
+ Agents run these tests automatically in **headless mode** during refactoring tasks. This means:
46
+
47
+ - Tests execute without manual intervention
48
+ - Multiple tests can run in parallel
49
+ - Results feed back into the agent's understanding of whether the refactor succeeded
50
+ - Agents can iterate on their changes if tests fail
51
+
52
+ This creates a tight feedback loop: the agent refactors, tests verify, and if something breaks, the agent knows immediately and can adjust.
53
+
54
+ ## Modernization and Refactoring
55
+
56
+ Profound offers a combination of algorithmic and AI-based refactoring for enterprise modernization efforts, including:
57
+
58
+ - **5250 to Web**: Converting terminal-based interfaces to modern web applications
59
+ - **RPG to modern languages**: Transforming RPG code to Node.js, .NET, or Java
60
+ - **COBOL to modern languages**: Migrating COBOL applications to contemporary platforms
61
+
62
+ The algorithmic approach ensures consistent, predictable transformations for well-understood patterns, while AI handles nuanced decisions and edge cases. Profound Automated Testing validates these transformations automatically, ensuring the modernized application behaves identically to the original.
63
+
64
+ ## When to Use
65
+
66
+ Profound Automated Testing is most valuable for:
67
+
68
+ - **Code modernization**: Converting legacy code to modern languages or frameworks
69
+ - **RPG refactoring**: Updating old RPG patterns to modern free-format RPG
70
+ - **Platform migrations**: Moving applications between environments
71
+ - **Large-scale changes**: Any refactoring where manual verification would be impractical
72
+
73
+ For smaller changes or new features, manual testing through the Testing menu may be sufficient. Automated testing shines when you need to verify that complex, existing functionality remains unchanged.
74
+
75
+ ## Learn More
76
+
77
+ For detailed documentation on recording tests, configuring environments, and analyzing results, see the [Profound Automated Testing documentation](https://profoundlogicsupport.atlassian.net/wiki/spaces/PUI/pages/1461092365/Automated+Testing).
@@ -0,0 +1,42 @@
1
+ # Task Visualizations
2
+
3
+ As agents work on tasks, they automatically capture screenshots and screen states from applications they interact with. These visualizations show exactly what the agent saw during execution—giving you visibility into how the agent tested and verified its changes.
4
+
5
+ ## What Gets Captured
6
+
7
+ Agents capture visualizations whenever they interact with running applications:
8
+
9
+ - **5250 terminal screens**: Character-based displays from IBM i systems and legacy applications
10
+ - **Rich Display screens**: Modern web interfaces built with Profound UI or similar frameworks
11
+ - **Web page screenshots**: Browser-rendered pages the agent navigated to
12
+
13
+ Captures happen automatically during task execution. Agents know when to capture screens automatically based on the testing context and instructions configured in the environment.
14
+
15
+ ## Viewing Visualizations
16
+
17
+ After a task completes, you can view the captured screens:
18
+
19
+ 1. Open the task detail page
20
+ 2. Look for captured screens in the **Output Summary** section
21
+
22
+ Each visualization shows:
23
+ - The rendered screen as the agent saw it
24
+ - When it was captured during execution
25
+ - Which session or test produced it
26
+
27
+ For 5250 screens, visualizations render in a terminal-style format with proper formatting and colors. For web interfaces, you see the page as it appeared in the browser.
28
+
29
+ ## Why Visualizations Matter
30
+
31
+ Visualizations help you:
32
+
33
+ - **Verify agent work**: See exactly what the agent tested, not just what it reported
34
+ - **Debug issues**: When something goes wrong, screenshots show the application state
35
+ - **Document changes**: Captured screens serve as visual evidence of testing
36
+ - **Understand legacy systems**: 5250 screens are rendered in a readable format even if you're unfamiliar with terminal interfaces
37
+
38
+ ## Configuration
39
+
40
+ Visualizations require environment-level configuration to render certain screen types (especially 5250 screens). If visualizations aren't appearing for your environment, ask your administrator to check the environment settings.
41
+
42
+ See **Environments** in the Administration section for configuration details.
@@ -0,0 +1,118 @@
1
+ # Testing Menu
2
+
3
+ The Testing menu provides tools to verify that agent changes work correctly. Start your application server, run test commands, and interact with your running application—all from the task toolbar.
4
+
5
+ ## What is an Application Server?
6
+
7
+ An application server is the runtime environment where your code executes. In CoderFlow, the application server:
8
+
9
+ - Runs your application so you can test it interactively
10
+ - Exposes web URLs you can click to open the running application
11
+ - Enables manual testing and validation of code changes
12
+ - Captures screens for visualization and documentation
13
+
14
+ Application servers are configured per environment by administrators. See **Environments** in the Administration section for configuration details.
15
+
16
+ ## Container Mode vs Proxy Mode
17
+
18
+ Environments can be configured with one of two application server modes:
19
+
20
+ ### Container Mode
21
+
22
+ The application runs inside the task container itself. When you start the server, a command executes within the container (like `npm start` or a custom startup script), and the application begins listening for requests.
23
+
24
+ This mode is fully self-contained—the application runs in the same isolated environment where the agent made its changes.
25
+
26
+ ### Proxy Mode
27
+
28
+ Requests are forwarded to an external application server running outside the container. This is common when connecting to:
29
+
30
+ - Remote IBM i systems
31
+ - Shared development servers
32
+ - External testing platforms
33
+
34
+ In proxy mode, CoderFlow acts as an intermediary, forwarding your requests to the external server and returning responses.
35
+
36
+ ## Starting and Stopping
37
+
38
+ ### Starting the Application Server
39
+
40
+ 1. Open a task with an application server configured
41
+ 2. Open the **Testing** menu in the toolbar
42
+ 3. Click **Start Server** or use **Start Server & Launch** to start and open a URL in one step
43
+ 4. Wait for the server to initialize
44
+
45
+ You can view server logs from the Testing menu while the server is running.
46
+
47
+ ### Stopping the Application Server
48
+
49
+ Open the Testing menu and click **Stop Server**. The server also stops automatically when:
50
+
51
+ - The task is paused or stopped
52
+ - The container is removed
53
+
54
+ ## Launch URLs
55
+
56
+ Launch URLs are pre-configured links that open specific pages in your running application. They appear in the Testing menu under **Launch URLs** (when the server is running) or **Start Server & Launch** (to start and open in one step).
57
+
58
+ Click any launch URL to open that page in a new browser tab. Common examples include:
59
+
60
+ - Application home page
61
+ - Admin dashboards
62
+ - Specific features or modules under development
63
+
64
+ Launch URLs are defined in the environment configuration. If you need different URLs, ask your administrator to update the environment settings.
65
+
66
+ ## Running Tests
67
+
68
+ The Testing menu also provides access to test commands configured for your environment. These can include unit tests, integration tests, linting, or any custom commands your team has set up.
69
+
70
+ ### Executing a Test
71
+
72
+ 1. Open the **Testing** menu
73
+ 2. Find your test under **Run Test Commands**
74
+ 3. Click the test name
75
+ 4. If the test has parameters, select or enter values when prompted
76
+ 5. Click **Run** to execute
77
+
78
+ Test output streams in real-time. When complete, you'll see the exit code—0 means passed, non-zero means failed.
79
+
80
+ ### Tests with Parameters
81
+
82
+ Some tests accept parameters to customize what runs. For example, a unit test might let you select which test file to run, or choose between debug and coverage modes. The UI prompts you for these values before execution.
83
+
84
+ If a test supports multiple selections, you can run the same test against several files or configurations in one go.
85
+
86
+ ### Viewing Results
87
+
88
+ Test output appears in a results panel showing:
89
+
90
+ - Real-time command output
91
+ - Pass/fail status
92
+ - Exit code
93
+ - Error messages and stack traces (if failed)
94
+
95
+ Use test results alongside manual application testing to validate that agent changes work correctly.
96
+
97
+ ## Providing Feedback
98
+
99
+ If you find issues while testing, you can provide feedback in two ways:
100
+
101
+ **From the task detail page:** Return to CoderFlow and send follow-up instructions describing what needs to change.
102
+
103
+ **From the application itself:** Use the feedback widget injected into your running application. This lets you capture context directly—take screenshots, select DOM elements, or record screen state—without leaving the application. Your feedback is sent to the agent along with the captured context.
104
+
105
+ The in-app feedback widget is especially useful when issues are easier to show than describe.
106
+
107
+ ## Testing Workflow
108
+
109
+ A typical testing workflow:
110
+
111
+ 1. Agent completes a task with code changes
112
+ 2. Run automated tests from the Testing menu to catch obvious issues
113
+ 3. Start the application server and open a launch URL
114
+ 4. Manually test the changes—verify the fix works, check for regressions
115
+ 5. If issues are found, provide feedback (from the app or task page)
116
+ 6. When satisfied, approve and deploy the changes
117
+
118
+ Combining automated tests with hands-on verification gives you confidence that the changes are ready for production.