@bastani/atomic 0.8.21 → 0.8.22
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/CHANGELOG.md +66 -9
- package/dist/builtin/intercom/broker/broker.ts +3 -3
- package/dist/builtin/intercom/config.ts +3 -3
- package/dist/builtin/intercom/index.ts +1 -1
- package/dist/builtin/intercom/package.json +1 -1
- package/dist/builtin/intercom/ui/compose.ts +2 -2
- package/dist/builtin/mcp/host-html-template.ts +0 -3
- package/dist/builtin/mcp/package.json +1 -1
- package/dist/builtin/subagents/CHANGELOG.md +20 -4
- package/dist/builtin/subagents/agents/codebase-online-researcher.md +9 -9
- package/dist/builtin/subagents/agents/debugger.md +6 -6
- package/dist/builtin/subagents/package.json +1 -1
- package/dist/builtin/subagents/prompts/parallel-handoff-plan.md +1 -1
- package/dist/builtin/subagents/skills/browser-use/SKILL.md +234 -0
- package/dist/builtin/subagents/skills/browser-use/references/cdp-python.md +76 -0
- package/dist/builtin/subagents/skills/browser-use/references/multi-session.md +92 -0
- package/dist/builtin/subagents/skills/subagent/SKILL.md +4 -4
- package/dist/builtin/subagents/src/agents/skills.ts +19 -1
- package/dist/builtin/subagents/src/extension/index.ts +24 -22
- package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +7 -1
- package/dist/builtin/subagents/src/runs/background/async-execution.ts +23 -7
- package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +98 -3
- package/dist/builtin/subagents/src/runs/background/async-status.ts +3 -1
- package/dist/builtin/subagents/src/runs/background/run-status.ts +1 -1
- package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +3 -0
- package/dist/builtin/subagents/src/runs/background/subagent-runner.ts +37 -12
- package/dist/builtin/subagents/src/runs/foreground/chain-clarify.ts +15 -15
- package/dist/builtin/subagents/src/runs/foreground/execution.ts +26 -2
- package/dist/builtin/subagents/src/runs/shared/nested-render.ts +1 -1
- package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +7 -0
- package/dist/builtin/subagents/src/runs/shared/pi-args.ts +28 -1
- package/dist/builtin/subagents/src/shared/fast-mode.ts +80 -0
- package/dist/builtin/subagents/src/shared/formatters.ts +4 -2
- package/dist/builtin/subagents/src/shared/types.ts +4 -2
- package/dist/builtin/subagents/src/shared/utils.ts +3 -61
- package/dist/builtin/subagents/src/tui/render.ts +303 -157
- package/dist/builtin/web-access/package.json +1 -1
- package/dist/builtin/workflows/CHANGELOG.md +113 -35
- package/dist/builtin/workflows/README.md +228 -41
- package/dist/builtin/workflows/builtin/deep-research-codebase.ts +535 -541
- package/dist/builtin/workflows/builtin/goal.ts +39 -25
- package/dist/builtin/workflows/builtin/open-claude-design.ts +66 -69
- package/dist/builtin/workflows/builtin/ralph.ts +21 -21
- package/dist/builtin/workflows/package.json +6 -5
- package/dist/builtin/workflows/skills/research-codebase/SKILL.md +1 -1
- package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +2 -2
- package/dist/builtin/workflows/src/extension/discovery.ts +25 -146
- package/dist/builtin/workflows/src/extension/dispatcher.ts +72 -24
- package/dist/builtin/workflows/src/extension/hil-answer-notifications.ts +363 -0
- package/dist/builtin/workflows/src/extension/index.ts +690 -352
- package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +99 -62
- package/dist/builtin/workflows/src/extension/render-call.ts +2 -1
- package/dist/builtin/workflows/src/extension/render-result.ts +9 -3
- package/dist/builtin/workflows/src/extension/renderers.ts +5 -3
- package/dist/builtin/workflows/src/extension/runtime.ts +68 -33
- package/dist/builtin/workflows/src/extension/status-writer.ts +1 -1
- package/dist/builtin/workflows/src/extension/wiring.ts +34 -13
- package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +142 -0
- package/dist/builtin/workflows/src/extension/workflow-schema.ts +4 -4
- package/dist/builtin/workflows/src/index.ts +2 -0
- package/dist/builtin/workflows/src/intercom/result-intercom.ts +1 -1
- package/dist/builtin/workflows/src/runs/background/runner.ts +6 -4
- package/dist/builtin/workflows/src/runs/background/status.ts +45 -21
- package/dist/builtin/workflows/src/runs/foreground/executor.ts +624 -52
- package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +1 -1
- package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +80 -24
- package/dist/builtin/workflows/src/runs/shared/validate-inputs.ts +61 -24
- package/dist/builtin/workflows/src/runs/shared/workflow-runner.ts +32 -10
- package/dist/builtin/workflows/src/sdk-surface.ts +6 -0
- package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +178 -0
- package/dist/builtin/workflows/src/shared/persistence-restore.ts +92 -12
- package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +21 -3
- package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +1 -2
- package/dist/builtin/workflows/src/shared/run-visibility.ts +9 -0
- package/dist/builtin/workflows/src/shared/schema-introspection.ts +121 -0
- package/dist/builtin/workflows/src/shared/serializable.ts +132 -0
- package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +91 -9
- package/dist/builtin/workflows/src/shared/store-types.ts +31 -3
- package/dist/builtin/workflows/src/shared/store.ts +58 -14
- package/dist/builtin/workflows/src/shared/types.ts +105 -40
- package/dist/builtin/workflows/src/tui/chat-surface-message.ts +129 -13
- package/dist/builtin/workflows/src/tui/chat-surface.ts +6 -1
- package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +3 -2
- package/dist/builtin/workflows/src/tui/graph-canvas.ts +1 -1
- package/dist/builtin/workflows/src/tui/graph-view.ts +91 -65
- package/dist/builtin/workflows/src/tui/inline-form-card.ts +1 -1
- package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +3 -2
- package/dist/builtin/workflows/src/tui/inputs-overlay.ts +3 -2
- package/dist/builtin/workflows/src/tui/inputs-picker.ts +8 -7
- package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +2 -0
- package/dist/builtin/workflows/src/tui/node-card.ts +34 -8
- package/dist/builtin/workflows/src/tui/overlay-adapter.ts +4 -11
- package/dist/builtin/workflows/src/tui/prompt-card.ts +98 -50
- package/dist/builtin/workflows/src/tui/session-list.ts +7 -2
- package/dist/builtin/workflows/src/tui/session-picker.ts +2 -0
- package/dist/builtin/workflows/src/tui/stage-chat-view.ts +226 -55
- package/dist/builtin/workflows/src/tui/status-helpers.ts +2 -0
- package/dist/builtin/workflows/src/tui/store-widget-installer.ts +37 -158
- package/dist/builtin/workflows/src/tui/toast.ts +2 -2
- package/dist/builtin/workflows/src/tui/widget.ts +53 -12
- package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +270 -19
- package/dist/builtin/workflows/src/tui/workflow-notice-card.ts +184 -0
- package/dist/builtin/workflows/src/workflows/define-workflow.ts +138 -43
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +45 -0
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session.d.ts +27 -9
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +196 -17
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/atomic-guide-command.d.ts.map +1 -1
- package/dist/core/atomic-guide-command.js +2 -2
- package/dist/core/atomic-guide-command.js.map +1 -1
- package/dist/core/codex-fast-mode.d.ts +36 -0
- package/dist/core/codex-fast-mode.d.ts.map +1 -0
- package/dist/core/codex-fast-mode.js +117 -0
- package/dist/core/codex-fast-mode.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/index.d.ts +4 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -0
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +7 -2
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +23 -8
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/reactive-widget.d.ts +58 -0
- package/dist/core/extensions/reactive-widget.d.ts.map +1 -0
- package/dist/core/extensions/reactive-widget.js +182 -0
- package/dist/core/extensions/reactive-widget.js.map +1 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +1 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +26 -12
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/messages.d.ts +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +8 -2
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-registry.d.ts +4 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +11 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/resource-loader.d.ts +9 -1
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +49 -21
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +22 -13
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +7 -5
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +5 -3
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +16 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +64 -5
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +7 -4
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/ask-user-question.js +2 -2
- package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +12 -0
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
- package/dist/modes/interactive/chat-input-actions.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js +0 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/fast-mode-selector.d.ts +27 -0
- package/dist/modes/interactive/components/fast-mode-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/fast-mode-selector.js +105 -0
- package/dist/modes/interactive/components/fast-mode-selector.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +7 -12
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts +1 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +1 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +4 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +132 -30
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +53 -6
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +3 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/docs/compaction.md +1 -1
- package/docs/custom-provider.md +2 -2
- package/docs/development.md +2 -2
- package/docs/docs.json +2 -2
- package/docs/extensions.md +18 -13
- package/docs/providers.md +5 -1
- package/docs/quickstart.md +5 -3
- package/docs/rpc.md +5 -5
- package/docs/sdk.md +12 -12
- package/docs/settings.md +18 -0
- package/docs/themes.md +6 -6
- package/docs/tui.md +20 -18
- package/docs/usage.md +2 -0
- package/docs/workflows.md +403 -39
- package/examples/extensions/qna.ts +2 -2
- package/package.json +4 -4
- package/dist/builtin/subagents/skills/playwright-cli/SKILL.md +0 -392
- package/dist/builtin/subagents/skills/playwright-cli/references/element-attributes.md +0 -23
- package/dist/builtin/subagents/skills/playwright-cli/references/playwright-tests.md +0 -39
- package/dist/builtin/subagents/skills/playwright-cli/references/request-mocking.md +0 -87
- package/dist/builtin/subagents/skills/playwright-cli/references/running-code.md +0 -241
- package/dist/builtin/subagents/skills/playwright-cli/references/session-management.md +0 -225
- package/dist/builtin/subagents/skills/playwright-cli/references/spec-driven-testing.md +0 -305
- package/dist/builtin/subagents/skills/playwright-cli/references/storage-state.md +0 -275
- package/dist/builtin/subagents/skills/playwright-cli/references/test-generation.md +0 -134
- package/dist/builtin/subagents/skills/playwright-cli/references/tracing.md +0 -139
- package/dist/builtin/subagents/skills/playwright-cli/references/video-recording.md +0 -143
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,63 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.8.22] - 2026-06-01
|
|
6
|
+
|
|
7
|
+
### Breaking Changes
|
|
8
|
+
|
|
9
|
+
- Migrated bundled workflow authoring to explicit TypeBox input/output schemas and explicit workflow outputs, so composed workflows now validate contracts with `Type`/`Static` and no longer support legacy descriptors, implicit `result`, `rawOutput`, `.import(...)`, or declaration-time `.humanInTheLoop(...)`.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added Codex `/fast` mode toggles for chat and workflow-stage sessions with visible `fast` model markers on eligible OpenAI/OpenAI Codex models.
|
|
14
|
+
- Added reactive extension UI rendering via `ExtensionUIContext.requestRender()` so long-lived widgets can repaint without remount flicker.
|
|
15
|
+
- Added interrupt-delivered extension custom messages with optional abort messages, letting workflow and other first-party extensions surface urgent events immediately.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Expanded bundled workflow authoring docs and agent guidance for direct `ctx.workflow(compiledWorkflow, options)` composition, reusable builtin workflow modules, explicit child outputs, and safer long-running workflow monitoring.
|
|
20
|
+
- Refined the `/fast` selector copy, layout, toggle states, and keyboard support for clearer chat/workflow scoping.
|
|
21
|
+
- Improved workflow graph/status rendering for nested child workflows, compact lifecycle/HIL cards, and reference-first transcript inspection.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Fixed workflow reloads so package-manifest workflow entries refresh in-process without a full Atomic restart.
|
|
26
|
+
- Fixed Codex fast-mode propagation, persistence, request payloads, workflow footer markers, subagent launch metadata, and fallback marker synchronization across chat, workflow, and subagent surfaces.
|
|
27
|
+
- Fixed headless `/workflow` automation and print-mode output so successful commands emit displayable summaries, terminal failures surface correctly, completed stage handles dispose on exit, and command-originated extension errors are the only non-zero extension-error exits.
|
|
28
|
+
- Hardened workflow human-in-the-loop prompts and answers so brokered prompts remain focusable/scrollable, avoid stale Enter submissions, stay out of model context where appropriate, and resolve duplicate or raced tool answers deterministically.
|
|
29
|
+
- Stabilized long-lived workflow and subagent widgets with coalesced repaint paths, durable async-run hydration, and spinner ticks that avoid remount or scrollback flicker.
|
|
30
|
+
|
|
31
|
+
## [0.8.22-0] - 2026-06-01
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- Added `ExtensionUIContext.requestRender()` and a shared reactive widget installer for extensions to mount widgets once, repaint via coalesced render requests, and own timer-based refreshes without remount flicker ([#1150](https://github.com/bastani-inc/atomic/issues/1150)).
|
|
36
|
+
- Added `/fast` Codex fast mode toggles for chat and workflow-stage sessions, applying OpenAI priority service tier to supported `openai/*` and `openai-codex/*` models only; active supported models now show a visible `fast` indicator after the model name ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
37
|
+
- Added extension custom-message `deliverAs: "interrupt"` delivery so first-party extensions can abort a stale streaming turn and start an immediate custom-message turn ([#1137](https://github.com/bastani-inc/atomic/issues/1137)).
|
|
38
|
+
- Added an `interruptAbortMessage` option for interrupt-delivered extension messages so meaningful external events can replace generic `Operation aborted` tool output ([#1137](https://github.com/bastani-inc/atomic/issues/1137)).
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- Documented direct `ctx.workflow(compiledWorkflow, options)` composition, TypeScript module-style child workflow calls, reusable builtin workflow modules, and child workflow output contracts in the bundled workflow authoring guide.
|
|
43
|
+
- Refined the `/fast` selector into a conventional toggle UI with on/off states, clearer scope descriptions, and space/enter toggle support ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
44
|
+
- Compressed the `/fast` selector copy, row layout, and per-change status message so the summary, toggles, scopes, and keyboard hints stay readable without duplicate off/standard-tier messaging ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
45
|
+
- Clarified workflow-creation guidance so Atomic asks clarifying questions and writes first-time workflows directly, reserving `/goal` for explicitly chosen long-running reviewer-gated implementation.
|
|
46
|
+
- Tightened workflow tool guidance so Atomic monitors long-running workflow runs periodically without micro-managing stages, steers only when appropriate, and inspects transcript paths surgically instead of reading whole session logs.
|
|
47
|
+
- Expanded the workflow authoring docs for composing user-defined workflows and builtin child workflows such as `deep-research-codebase`, `goal`, and `ralph`, including explicit output contracts and the `.run()` return-object convention for the implicit string `result` output.
|
|
48
|
+
- Documented the current workflow tool action surface, lifecycle notices, human-in-the-loop answer notifications, workflow notification config, `/workflow` slash-command discovery, and workflow Codex fast-mode behavior ([#1151](https://github.com/bastani-inc/atomic/issues/1151)).
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- Added a host workflow-resource refresh path so workflow reloads can re-read package manifests without a full Atomic reload ([#1155](https://github.com/bastani-inc/atomic/issues/1155)).
|
|
53
|
+
- Preserved custom registered provider streamers when Codex fast mode is enabled for native OpenAI response APIs ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
54
|
+
- Fixed `/fast` changes so the banner/footer and current session update immediately, and inherited chat fast-mode state now reaches subagent child sessions without waiting for a restart ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
55
|
+
- Fixed `/fast` persistence so existing project-level fast-mode overrides are updated alongside global settings for the changed scope without clobbering untouched global chat or workflow fast-mode preferences ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
56
|
+
- Made Codex fast-mode request helpers require an explicit enabled flag and treat `service_tier: undefined` as unset when preparing OpenAI payloads ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
57
|
+
- Fixed attached workflow-stage chat footers to resolve the `fast` model indicator against workflow fast-mode settings instead of chat settings ([#1134](https://github.com/bastani-inc/atomic/issues/1134)).
|
|
58
|
+
- Scoped print-mode non-zero extension-error exits to command-originated failures so non-fatal lifecycle extension errors do not fail otherwise successful headless output ([#1123](https://github.com/bastani-inc/atomic/issues/1123)).
|
|
59
|
+
- Fixed `ask_user_question` custom UI abort handling so interrupt-delivered workflow HiL answer notices are not stuck behind a blocking question modal ([#1137](https://github.com/bastani-inc/atomic/issues/1137)).
|
|
60
|
+
- Fixed print-mode slash-command output for headless `/workflow` automation by printing final displayable custom messages and treating command-originated extension errors as non-zero while suppressing stale final output ([#1156](https://github.com/bastani-inc/atomic/issues/1156)).
|
|
61
|
+
|
|
5
62
|
## [0.8.21] - 2026-05-30
|
|
6
63
|
|
|
7
64
|
### Changed
|
|
@@ -12,7 +69,7 @@
|
|
|
12
69
|
|
|
13
70
|
### Changed
|
|
14
71
|
|
|
15
|
-
- Upgraded the pi runtime packages (`@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, `@earendil-works/pi-tui`) to 0.78.0 and aligned skill name validation with upstream pi so frontmatter names no longer need to match parent directory names ([#1124](https://github.com/
|
|
72
|
+
- Upgraded the pi runtime packages (`@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, `@earendil-works/pi-tui`) to 0.78.0 and aligned skill name validation with upstream pi so frontmatter names no longer need to match parent directory names ([#1124](https://github.com/bastani-inc/atomic/issues/1124)).
|
|
16
73
|
|
|
17
74
|
## [0.8.20] - 2026-05-29
|
|
18
75
|
|
|
@@ -25,13 +82,13 @@
|
|
|
25
82
|
### Added
|
|
26
83
|
|
|
27
84
|
- Added session-scoped `orchestrationContext` support to SDK agent sessions and extension contexts for workflow-stage policy enforcement.
|
|
28
|
-
- Added support for the Claude Opus 4.8 model across model configuration, selection, and validation via the `@earendil-works/pi-ai` 0.77.0 upgrade ([#1097](https://github.com/
|
|
85
|
+
- Added support for the Claude Opus 4.8 model across model configuration, selection, and validation via the `@earendil-works/pi-ai` 0.77.0 upgrade ([#1097](https://github.com/bastani-inc/atomic/issues/1097)).
|
|
29
86
|
|
|
30
87
|
### Changed
|
|
31
88
|
|
|
32
89
|
- Upgraded the pi runtime packages (`@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, `@earendil-works/pi-tui`) from 0.75.5 to 0.77.0 and bumped `@modelcontextprotocol/ext-apps` to 1.7.2, `highlight.js` to 11.x, `linkedom` to 0.18.x, `undici` to 8.x, and `vitest` (dev) to 4.x.
|
|
33
90
|
- Switched the `highlight.js` import to the package-root default export and replaced the Node stream pipeline in the tools downloader with `Bun.write()` to align with the upgraded dependencies.
|
|
34
|
-
- Pinned the footer (model + cwd identity) directly under the editor and moved below-editor widgets beneath it (separated by a blank line), so transient run status such as the workflow companion counter renders at the very bottom instead of separating the footer from the input. Stacked below-editor widgets (e.g. the async-subagent widget and the workflow run counter) are also separated from each other by a blank line. Rendering below-editor widgets last keeps a live widget at the bottom of the buffer (within the viewport), preserving the widget resize-flicker fix. Extension-provided custom footers are now swapped in place (rather than appended), so installing a custom footer keeps the below-editor widget container as the last UI child and does not regress this ordering ([#1109](https://github.com/
|
|
91
|
+
- Pinned the footer (model + cwd identity) directly under the editor and moved below-editor widgets beneath it (separated by a blank line), so transient run status such as the workflow companion counter renders at the very bottom instead of separating the footer from the input. Stacked below-editor widgets (e.g. the async-subagent widget and the workflow run counter) are also separated from each other by a blank line. Rendering below-editor widgets last keeps a live widget at the bottom of the buffer (within the viewport), preserving the widget resize-flicker fix. Extension-provided custom footers are now swapped in place (rather than appended), so installing a custom footer keeps the below-editor widget container as the last UI child and does not regress this ordering ([#1109](https://github.com/bastani-inc/atomic/issues/1109)).
|
|
35
92
|
|
|
36
93
|
## [0.8.19] - 2026-05-27
|
|
37
94
|
|
|
@@ -55,7 +112,7 @@
|
|
|
55
112
|
|
|
56
113
|
### Added
|
|
57
114
|
|
|
58
|
-
- Added SDK `excludeTools` support for omitting named built-in, extension, and custom tools from `createAgentSession()` sessions while preserving existing `tools` and `noTools` behavior ([#1070](https://github.com/
|
|
115
|
+
- Added SDK `excludeTools` support for omitting named built-in, extension, and custom tools from `createAgentSession()` sessions while preserving existing `tools` and `noTools` behavior ([#1070](https://github.com/bastani-inc/atomic/issues/1070)).
|
|
59
116
|
|
|
60
117
|
### Changed
|
|
61
118
|
|
|
@@ -71,11 +128,11 @@
|
|
|
71
128
|
|
|
72
129
|
### Breaking Changes
|
|
73
130
|
|
|
74
|
-
- Removed bundled Ralph's configurable `review_quorum` and `blocker_threshold` inputs; `max_turns` remains configurable alongside `objective` and optional `base_branch` ([#1061](https://github.com/
|
|
131
|
+
- Removed bundled Ralph's configurable `review_quorum` and `blocker_threshold` inputs; `max_turns` remains configurable alongside `objective` and optional `base_branch` ([#1061](https://github.com/bastani-inc/atomic/issues/1061)).
|
|
75
132
|
|
|
76
133
|
### Changed
|
|
77
134
|
|
|
78
|
-
- Updated bundled Ralph docs and prompts to more closely match Codex `/goal` continuation guidance while retaining deterministic reviewer-gated completion ([#1061](https://github.com/
|
|
135
|
+
- Updated bundled Ralph docs and prompts to more closely match Codex `/goal` continuation guidance while retaining deterministic reviewer-gated completion ([#1061](https://github.com/bastani-inc/atomic/issues/1061)).
|
|
79
136
|
- Restored bundled Ralph's stronger historical review gate prompt and `review_decision` schema with findings, oracle satisfaction, receipt assessment, verification remaining, and reviewer-error guard fields.
|
|
80
137
|
|
|
81
138
|
## [0.8.16] - 2026-05-26
|
|
@@ -88,15 +145,15 @@
|
|
|
88
145
|
|
|
89
146
|
### Breaking Changes
|
|
90
147
|
|
|
91
|
-
- Removed Ralph's `prompt` and `max_loops` compatibility inputs from the bundled workflow; use `objective` and `max_turns` instead ([#1061](https://github.com/
|
|
148
|
+
- Removed Ralph's `prompt` and `max_loops` compatibility inputs from the bundled workflow; use `objective` and `max_turns` instead ([#1061](https://github.com/bastani-inc/atomic/issues/1061)).
|
|
92
149
|
|
|
93
150
|
### Changed
|
|
94
151
|
|
|
95
|
-
- Updated bundled Ralph docs and guide examples for the Goal Runner workflow with goal-ledger receipts, reviewer quorum, repeated-blocker gating, and `max_turns`/`objective` inputs ([#1061](https://github.com/
|
|
152
|
+
- Updated bundled Ralph docs and guide examples for the Goal Runner workflow with goal-ledger receipts, reviewer quorum, repeated-blocker gating, and `max_turns`/`objective` inputs ([#1061](https://github.com/bastani-inc/atomic/issues/1061)).
|
|
96
153
|
|
|
97
154
|
### Fixed
|
|
98
155
|
|
|
99
|
-
- Clarified bundled Ralph's bounded `blocker_threshold` behavior ([#1061](https://github.com/
|
|
156
|
+
- Clarified bundled Ralph's bounded `blocker_threshold` behavior ([#1061](https://github.com/bastani-inc/atomic/issues/1061)).
|
|
100
157
|
|
|
101
158
|
## [0.8.15] - 2026-05-26
|
|
102
159
|
|
|
@@ -185,12 +185,12 @@ class IntercomBroker {
|
|
|
185
185
|
if (currentId) {
|
|
186
186
|
throw new Error("Received duplicate register message");
|
|
187
187
|
}
|
|
188
|
-
|
|
188
|
+
|
|
189
189
|
const id = randomUUID();
|
|
190
190
|
setId(id);
|
|
191
191
|
const info: SessionInfo = { ...clientMessage.session, id };
|
|
192
192
|
this.sessions.set(id, { socket, info });
|
|
193
|
-
|
|
193
|
+
|
|
194
194
|
if (this.shutdownTimer) {
|
|
195
195
|
clearTimeout(this.shutdownTimer);
|
|
196
196
|
this.shutdownTimer = null;
|
|
@@ -321,7 +321,7 @@ class IntercomBroker {
|
|
|
321
321
|
|
|
322
322
|
private shutdown(): void {
|
|
323
323
|
console.log("Broker shutting down");
|
|
324
|
-
|
|
324
|
+
|
|
325
325
|
for (const session of this.sessions.values()) {
|
|
326
326
|
session.socket.end();
|
|
327
327
|
}
|
|
@@ -13,10 +13,10 @@ export interface IntercomConfig {
|
|
|
13
13
|
|
|
14
14
|
/** Optional custom status suffix shown after automatic lifecycle status */
|
|
15
15
|
status?: string;
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
/** Enable/disable intercom (default: true) */
|
|
18
18
|
enabled: boolean;
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
/** Show reply hint in incoming messages (default: true) */
|
|
21
21
|
replyHint: boolean;
|
|
22
22
|
}
|
|
@@ -36,7 +36,7 @@ export function loadConfig(): IntercomConfig {
|
|
|
36
36
|
if (!existsSync(CONFIG_PATH)) {
|
|
37
37
|
return { ...defaults };
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
try {
|
|
41
41
|
const raw = readFileSync(CONFIG_PATH, "utf-8");
|
|
42
42
|
const parsed: unknown = JSON.parse(raw);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/intercom",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension providing a private coordination channel between parent and child agent sessions. Fork of: https://github.com/nicobailon/pi-intercom",
|
|
6
6
|
"contributors": [
|
|
@@ -100,14 +100,14 @@ export class ComposeOverlay implements Component {
|
|
|
100
100
|
const result = await this.client.send(this.target.id, {
|
|
101
101
|
text: this.inputBuffer.trim(),
|
|
102
102
|
});
|
|
103
|
-
|
|
103
|
+
|
|
104
104
|
if (!result.delivered) {
|
|
105
105
|
this.error = result.reason ?? "Message not delivered. Session may not exist or has disconnected.";
|
|
106
106
|
this.sending = false;
|
|
107
107
|
this.tui.requestRender();
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
this.done({
|
|
112
112
|
sent: true,
|
|
113
113
|
messageId: result.id,
|
|
@@ -17,13 +17,10 @@ export interface HostHtmlTemplateInput {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export function buildHostHtmlTemplate(input: HostHtmlTemplateInput): string {
|
|
20
|
-
const cspContent = buildCspMetaContent(input.resource.meta.csp);
|
|
21
|
-
const resourceHtml = applyCspMeta(input.resource.html, cspContent);
|
|
22
20
|
const hostContext = input.hostContext ?? {};
|
|
23
21
|
|
|
24
22
|
const sessionToken = safeInlineJSON(input.sessionToken);
|
|
25
23
|
const toolArgs = safeInlineJSON(input.toolArgs);
|
|
26
|
-
const uiHtml = safeInlineJSON(resourceHtml);
|
|
27
24
|
const serverName = safeInlineJSON(input.serverName);
|
|
28
25
|
const toolName = safeInlineJSON(input.toolName);
|
|
29
26
|
const hostContextJson = safeInlineJSON(hostContext);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/mcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension that adapts MCP (Model Context Protocol) servers into the coding agent. Fork of: https://github.com/nicobailon/pi-mcp-adapter",
|
|
6
6
|
"contributors": [
|
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.8.22] - 2026-06-01
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- Surfaced Codex fast-mode state in foreground result badges, async widgets, and async status output, while scoping child fast-mode launches to the parent chat or workflow surface.
|
|
9
|
+
- Stabilized async subagent widgets and foreground spinner animation so visible status updates no longer remount widgets or churn elapsed/activity text between semantic progress changes.
|
|
10
|
+
- Hydrated durable active async runs into the below-editor widget and hardened global npm skill discovery with quieter probing, conservative timeouts, and cached failures.
|
|
11
|
+
|
|
12
|
+
## [0.8.22-0] - 2026-06-01
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Show Codex fast-mode launch metadata in foreground subagent result badges, async subagent widgets, and async status output when eligible OpenAI/OpenAI Codex child runs start with `/fast` enabled ([#1153](https://github.com/bastani-inc/atomic/issues/1153)).
|
|
16
|
+
- Scope subagent Codex fast-mode launches to the parent chat surface, so main-chat subagents follow `codexFastMode.chat` while workflow-node subagents follow `codexFastMode.workflow` ([#1153](https://github.com/bastani-inc/atomic/issues/1153)).
|
|
17
|
+
- Keep the async subagent widget mounted across visible status updates, capture widget animation clocks outside arbitrary host re-renders, and animate foreground subagent chatbox spinners with spinner-only ticks that leave elapsed/activity text stable between semantic progress updates ([#1150](https://github.com/bastani-inc/atomic/issues/1150)).
|
|
18
|
+
- Harden global npm skill discovery by suppressing noisy probe output while keeping a conservative timeout and caching failures for constrained environments.
|
|
19
|
+
- Hydrate active async subagent runs from durable status files into the below-editor widget so background work visible via `subagent({ action: "status" })` also appears in the TUI after launch/session rebinding ([#1146](https://github.com/bastani-inc/atomic/issues/1146)).
|
|
20
|
+
|
|
5
21
|
## [0.8.20] - 2026-05-29
|
|
6
22
|
|
|
7
23
|
### Changed
|
|
@@ -11,11 +27,11 @@
|
|
|
11
27
|
|
|
12
28
|
### Fixed
|
|
13
29
|
|
|
14
|
-
- Fixed the subagent running spinner freezing/stuttering and the surrounding TUI flickering while subagents run: the running glyph is now driven by wall-clock time with a steady re-render ticker (result cards, slash result cards, and the async-agents widget), so it animates smoothly and continuously instead of only advancing when progress data changes. Per-frame diffs stay limited to the spinner glyph cell, so the differential renderer keeps doing partial redraws (no full-screen clear / flicker), and the ticker is torn down on completion, reload, and session shutdown ([#1084](https://github.com/
|
|
15
|
-
- Moved the async-agents (background subagent) widget from above the editor to below it (`belowEditor`). The widget animates a running glyph and elapsed labels every tick; pi-tui full-clears the screen+scrollback whenever a changed line sits above the viewport fold, so an above-editor widget flickered once the bottom region grew tall and pushed it above the fold. Rendering below the editor keeps the live line within the bottom viewport (flicker-free) and matches the workflow companion widget's placement ([#1109](https://github.com/
|
|
16
|
-
- Hardened workflow-stage subagent guard propagation tests with an internal executor runtime DI seam ([#1088](https://github.com/
|
|
30
|
+
- Fixed the subagent running spinner freezing/stuttering and the surrounding TUI flickering while subagents run: the running glyph is now driven by wall-clock time with a steady re-render ticker (result cards, slash result cards, and the async-agents widget), so it animates smoothly and continuously instead of only advancing when progress data changes. Per-frame diffs stay limited to the spinner glyph cell, so the differential renderer keeps doing partial redraws (no full-screen clear / flicker), and the ticker is torn down on completion, reload, and session shutdown ([#1084](https://github.com/bastani-inc/atomic/issues/1084)).
|
|
31
|
+
- Moved the async-agents (background subagent) widget from above the editor to below it (`belowEditor`). The widget animates a running glyph and elapsed labels every tick; pi-tui full-clears the screen+scrollback whenever a changed line sits above the viewport fold, so an above-editor widget flickered once the bottom region grew tall and pushed it above the fold. Rendering below the editor keeps the live line within the bottom viewport (flicker-free) and matches the workflow companion widget's placement ([#1109](https://github.com/bastani-inc/atomic/issues/1109)).
|
|
32
|
+
- Hardened workflow-stage subagent guard propagation tests with an internal executor runtime DI seam ([#1088](https://github.com/bastani-inc/atomic/issues/1088)).
|
|
17
33
|
- Capped subagent fanout spawned from workflow stages to a single child level with a workflow-specific nested-subagent error.
|
|
18
|
-
- Fixed builtin subagent skill resolution from project cwd ([#1087](https://github.com/
|
|
34
|
+
- Fixed builtin subagent skill resolution from project cwd ([#1087](https://github.com/bastani-inc/atomic/issues/1087)).
|
|
19
35
|
|
|
20
36
|
## [0.24.3] - 2026-05-14
|
|
21
37
|
|
|
@@ -5,7 +5,7 @@ tools: read, grep, find, ls, bash, write, web_search, fetch_content, get_search_
|
|
|
5
5
|
model: openai/gpt-5.5
|
|
6
6
|
fallbackModels: openai-codex/gpt-5.5, github-copilot/gpt-5.5, anthropic/claude-opus-4-8, github-copilot/claude-opus-4.7
|
|
7
7
|
thinking: low
|
|
8
|
-
skills:
|
|
8
|
+
skills: browser-use
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
You are an expert research specialist focused on finding accurate, relevant information from authoritative sources — including open-source library internals with GitHub permalinks. You have three web tools available from the `pi-web-access` extension:
|
|
@@ -14,11 +14,11 @@ You are an expert research specialist focused on finding accurate, relevant info
|
|
|
14
14
|
- `fetch_content` — fetch a specific URL and return clean reader-mode text/markdown (HTML pages, GitHub issues/PRs, Stack Overflow, npm, arXiv, Reddit, Wikipedia, JSON endpoints, PDFs, RSS/Atom, YouTube). `fetch_content` on a GitHub repo URL also clones the repo locally under `/tmp/pi-github-repos/<owner>/<repo>` and returns the file tree. Prefer this over a raw HTTP fetch.
|
|
15
15
|
- `get_search_content` — fetch the underlying content for the most promising results of a previous `web_search` in one call.
|
|
16
16
|
|
|
17
|
-
For JS-heavy or auth-gated pages, fall back to invoking `
|
|
17
|
+
For JS-heavy or auth-gated pages, fall back to invoking `browser-use` through `bash` (the `browser-use` skill is available).
|
|
18
18
|
|
|
19
19
|
<EXTREMELY_IMPORTANT>
|
|
20
20
|
- PREFER `fetch_content` for static pages; it's faster and cheaper than spinning up a real browser.
|
|
21
|
-
- Reach for the `
|
|
21
|
+
- Reach for the `browser-use` skill via `bash` ONLY when a real DOM/JS is required.
|
|
22
22
|
- ALWAYS check `research/web/` for a recent cached copy before fetching anything new.
|
|
23
23
|
- EVERY code-related claim about an open-source library needs a GitHub **permalink with a full commit SHA** — branch links break when code changes.
|
|
24
24
|
</EXTREMELY_IMPORTANT>
|
|
@@ -40,7 +40,7 @@ When fetching any external page, apply these techniques in order. They produce p
|
|
|
40
40
|
1. **`fetch_content <url>` first.** Returns clean reader-mode text/markdown for nearly every well-formed page (and handles PDFs and JSON). Try it before anything else.
|
|
41
41
|
2. **Check `/llms.txt`.** Many modern docs sites publish an AI-friendly index at `/llms.txt` (spec: [llmstxt.org](https://llmstxt.org/llms.txt)). `fetch_content https://<site>/llms.txt` often links directly to the most relevant pages in plain text, saving a round-trip through the full site.
|
|
42
42
|
3. **Request Markdown via `Accept: text/markdown`.** Sites behind Cloudflare with [Markdown for Agents](https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/) return pre-converted Markdown when you set the header. Use `bash` with `curl <url> -H "Accept: text/markdown"` (look for `content-type: text/markdown` and the `x-markdown-tokens` header).
|
|
43
|
-
4. **Fall back to a real browser.** Drive `
|
|
43
|
+
4. **Fall back to a real browser.** Drive `browser-use` through `bash` and load the `browser-use` skill to render and interact with JS-heavy or auth-gated pages.
|
|
44
44
|
|
|
45
45
|
## Persisting Findings — Store useful documents in `research/web/`
|
|
46
46
|
|
|
@@ -50,7 +50,7 @@ When you fetch a document that is worth keeping for future sessions (reference d
|
|
|
50
50
|
---
|
|
51
51
|
source_url: <original URL>
|
|
52
52
|
fetched_at: <YYYY-MM-DD>
|
|
53
|
-
fetch_method: read | llms.txt | markdown-accept-header | browser |
|
|
53
|
+
fetch_method: read | llms.txt | markdown-accept-header | browser | browser-use
|
|
54
54
|
topic: <short description>
|
|
55
55
|
---
|
|
56
56
|
```
|
|
@@ -167,12 +167,12 @@ When you receive a research query:
|
|
|
167
167
|
2. **Check the local cache first**. Look in `research/web/` for existing documents on the topic. If a recent (still-relevant) copy exists, cite it before re-fetching.
|
|
168
168
|
3. **Execute strategic searches**.
|
|
169
169
|
- Identify the authoritative source (e.g. the library's official docs site, its GitHub repo, its release notes).
|
|
170
|
-
- Apply the Web Fetch Strategy: `fetch_content <url>` → `/llms.txt` → `Accept: text/markdown` → `
|
|
170
|
+
- Apply the Web Fetch Strategy: `fetch_content <url>` → `/llms.txt` → `Accept: text/markdown` → `browser-use` fallback.
|
|
171
171
|
- Use multiple query variations to capture different perspectives via `web_search`.
|
|
172
172
|
- Use `get_search_content` to bulk-fetch the underlying content of the top results of a `web_search` in one shot.
|
|
173
173
|
- For source repositories, prefer raw GitHub URLs (`https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<path>`) over the HTML UI. For library internals, clone via `fetch_content` and use `grep`/`read` + permalinks.
|
|
174
174
|
4. **Fetch and analyze content**.
|
|
175
|
-
- Use `fetch_content <url>` (or `
|
|
175
|
+
- Use `fetch_content <url>` (or `browser-use` via `bash` when interactivity is required) to pull the full content of promising sources.
|
|
176
176
|
- Prioritize official documentation, reputable technical blogs, and authoritative sources.
|
|
177
177
|
- Extract specific quotes and sections relevant to the query.
|
|
178
178
|
- Note publication dates to ensure currency of information.
|
|
@@ -291,7 +291,7 @@ For library-source answers, every code claim should look like the citation examp
|
|
|
291
291
|
## Search Efficiency
|
|
292
292
|
|
|
293
293
|
- Check `research/web/` for an existing copy before fetching anything new.
|
|
294
|
-
- Start by fetching the authoritative source (`fetch_content <url>` → `/llms.txt` → `Accept: text/markdown` → `
|
|
294
|
+
- Start by fetching the authoritative source (`fetch_content <url>` → `/llms.txt` → `Accept: text/markdown` → `browser-use`) rather than search-engine-style exploration.
|
|
295
295
|
- Use `fetch_content` (or `get_search_content` after a `web_search`) to pull full content from the most promising 3-5 web pages.
|
|
296
296
|
- Reuse already-cloned repos under `/tmp/pi-github-repos/` instead of re-cloning.
|
|
297
297
|
- If initial results are insufficient, refine search terms and try again.
|
|
@@ -314,4 +314,4 @@ For library-source answers, every code claim should look like the citation examp
|
|
|
314
314
|
| Page returns 403 / bot block | Gemini fallback triggers automatically; no action needed if Gemini is configured. |
|
|
315
315
|
| `web_search` fails | Check provider config; try explicit `provider: "gemini"` if a Perplexity key is missing. |
|
|
316
316
|
|
|
317
|
-
Remember: you are the user's expert guide to technical research. Lean on `fetch_content` first with the `/llms.txt` → `Accept: text/markdown` → `
|
|
317
|
+
Remember: you are the user's expert guide to technical research. Lean on `fetch_content` first with the `/llms.txt` → `Accept: text/markdown` → `browser-use` fallback chain to efficiently pull authoritative content, clone open-source repos when implementation evidence is needed, store anything reusable under `research/web/`, and deliver comprehensive, up-to-date answers with exact citations and GitHub permalinks. Answer directly — skip preamble like "I'll help you with…" and go straight to findings.
|
|
@@ -5,7 +5,7 @@ tools: read, edit, write, grep, find, ls, bash, web_search, fetch_content, get_s
|
|
|
5
5
|
model: openai/gpt-5.5
|
|
6
6
|
fallbackModels: openai-codex/gpt-5.5, github-copilot/gpt-5.5, anthropic/claude-opus-4-8, github-copilot/claude-opus-4.7
|
|
7
7
|
thinking: xhigh
|
|
8
|
-
skills: tdd,
|
|
8
|
+
skills: tdd, browser-use, tmux
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
You are tasked with debugging and identifying errors, test failures, and unexpected behavior in the codebase. Your goal is to identify root causes, generate a report detailing the issues and proposed fixes, and fix the problem from that report.
|
|
@@ -14,13 +14,13 @@ You are tasked with debugging and identifying errors, test failures, and unexpec
|
|
|
14
14
|
|
|
15
15
|
- `tdd` — load the TDD skill before creating or modifying any tests.
|
|
16
16
|
- `tmux` load the tmux skill for debugging terminal environment or TUI apps.
|
|
17
|
-
- `
|
|
17
|
+
- `browser-use` — load the browser-use skill for debugging web apps. Assume the `browser-use` CLI is installed; if it fails, fall back to `bunx browser-use` or `npx browser-use`.
|
|
18
18
|
- `fetch_content <url>` — the `pi-web-access` fetch tool returns reader-mode text/markdown for URLs (HTML, JSON, PDFs, GitHub issues/PRs, npm, arXiv, RSS, Reddit, Stack Overflow, etc.). Prefer it over a real browser when you only need page content.
|
|
19
19
|
- `web_search` / `get_search_content` — issue web queries and bulk-fetch the top results for triage.
|
|
20
|
-
- `
|
|
20
|
+
- `browser-use` (via `bash`) — full Chromium when you need JS execution, auth, or interactive actions. Prefer the CLI's observe verbs over screenshots for understanding page state.
|
|
21
21
|
|
|
22
22
|
<EXTREMELY_IMPORTANT>
|
|
23
|
-
- PREFER `fetch_content <url>` for static content. Only reach for the `
|
|
23
|
+
- PREFER `fetch_content <url>` for static content. Only reach for the `browser-use` skill when you need JS execution, authentication, or interactive page actions.
|
|
24
24
|
- ALWAYS `tdd` BEFORE creating or modifying any tests.
|
|
25
25
|
- NEVER suppress a failing test to make it pass. Reproduce the failure first; only then fix the underlying defect.
|
|
26
26
|
</EXTREMELY_IMPORTANT>
|
|
@@ -46,7 +46,7 @@ When you need to consult docs, forums, or issue trackers, apply these techniques
|
|
|
46
46
|
1. **`fetch_content <url>` first.** The `pi-web-access` fetch tool returns clean reader-mode text/markdown for HTML, GitHub issues/PRs, Stack Overflow, npm, arXiv, RSS, Wikipedia, Reddit, JSON endpoints, and PDFs — no browser needed.
|
|
47
47
|
2. **Check `/llms.txt`.** Many modern docs sites publish an AI-friendly index at `/llms.txt` (spec: [llmstxt.org](https://llmstxt.org/llms.txt)). Try `fetch_content https://<site>/llms.txt` before anything else; it often links directly to the most relevant pages in plain text.
|
|
48
48
|
3. **`Accept: text/markdown` header.** Some sites behind Cloudflare serve pre-converted Markdown via the header. If `fetch_content` returns thin or noisy content, try `bash` with `curl <url> -H "Accept: text/markdown"`.
|
|
49
|
-
4. **Fall back to the
|
|
49
|
+
4. **Fall back to the browser-use skill** — only when JS execution, login, or interactive actions are required.
|
|
50
50
|
|
|
51
51
|
**Persist useful findings to `research/web/`:** When you fetch a document worth keeping for future sessions (error-message writeups, API schemas, troubleshooting guides, release notes), save it to `research/web/<YYYY-MM-DD>-<kebab-case-topic>.md` with a short header noting the source URL and fetch date. Future debugging sessions can then reuse the lookup without re-fetching.
|
|
52
52
|
|
|
@@ -80,7 +80,7 @@ Debugging process:
|
|
|
80
80
|
- Form and test hypotheses
|
|
81
81
|
- Add strategic debug logging or drive the project's own debugger (`bun --inspect`, `node --inspect-brk`, `python -m pdb`, etc.) through `bash` instead of `print` spam
|
|
82
82
|
- Inspect variable state by capturing it through the project's debugger session in `bash` or by writing a short repro script
|
|
83
|
-
- Use the web research order above (`fetch_content <url>` → `/llms.txt` → `Accept: text/markdown` →
|
|
83
|
+
- Use the web research order above (`fetch_content <url>` → `/llms.txt` → `Accept: text/markdown` → browser-use) to look up external library docs, error messages, Stack Overflow threads, and GitHub issues
|
|
84
84
|
|
|
85
85
|
For each issue, provide:
|
|
86
86
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bastani/subagents",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Atomic extension for delegating tasks to subagents with chains, parallel execution, and TUI clarification. Fork of: https://github.com/nicobailon/pi-subagents",
|
|
6
6
|
"contributors": [
|
|
@@ -36,7 +36,7 @@ External researcher (`codebase-online-researcher`):
|
|
|
36
36
|
|
|
37
37
|
- Study linked projects, docs, issues, examples, source code, or prompt guidance.
|
|
38
38
|
- Identify the behavior, API, implementation files, constraints, and transferable ideas.
|
|
39
|
-
- Use `fetch_content` first, then `/llms.txt`, then `Accept: text/markdown`, and only fall back to `
|
|
39
|
+
- Use `fetch_content` first, then `/llms.txt`, then `Accept: text/markdown`, and only fall back to `browser-use` when JS execution or auth is required.
|
|
40
40
|
- Persist any high-value fetch to `research/web/<YYYY-MM-DD>-<topic>.md`.
|
|
41
41
|
- Return source links, repo paths, key evidence, risks, and what matters for this implementation.
|
|
42
42
|
|