Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions packages/app/pr/soul-flows-audit-and-steering.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Soul Flows: Enable + Audit + Steering

## What changed

- Fixed **Give me a soul** from the empty-session starter so it now falls back to the bundled setup prompt body when the slash command is unavailable.
- Fixed Soul page enable flow so **Enable soul mode** also uses the bundled setup prompt body (instead of assuming `/<command>` exists).
- Updated `runSoulPrompt` to create a session and immediately send the steering/setup prompt (instead of only prefilling composer text).
- Refreshed Soul UI layout to emphasize observability and steering:
- activation audit checklist (memory, instructions wiring, command, scheduler, log, heartbeat proof)
- clearer heartbeat proof panel
- steering checklist state + action triggers mapped to existing Soul actions only

## Verified flows

1. Empty session -> **Give me a soul** sends full setup prompt and starts the flow.
2. Soul tab -> **Enable soul mode** sends full setup prompt and starts the flow.
3. Soul setup completion updates Soul tab audit to passing checks and visible heartbeat proof.
4. Soul tab -> **Run heartbeat now** steering trigger opens a new task and sends the scheduler/heartbeat prompt.

## Validation

- `pnpm --filter @different-ai/openwork-ui typecheck` ✅
- `pnpm --filter @different-ai/openwork-ui build` ✅
- `pnpm --filter @different-ai/openwork-ui test:health` ⚠️ fails in this environment (`/global/health: Unauthorized`)
- Docker + Chrome MCP style verification via browser automation:
- started stack with `packaging/docker/dev-up.sh`
- validated both enable flows and steering trigger end-to-end in the running UI
- validated Soul audit reflects successful setup and heartbeat evidence

## Evidence

- `packages/app/pr/screenshots/soul-flow-a-empty-session.png`
- `packages/app/pr/screenshots/soul-flow-b-audit.png`
- `packages/app/pr/screenshots/soul-flow-c-steering-trigger.png`
17 changes: 15 additions & 2 deletions packages/app/src/app/app.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3926,8 +3926,21 @@ export default function App() {
function runSoulPrompt(promptText: string) {
const text = promptText.trim();
if (!text) return;
setPrompt(text);
void createSessionAndOpen();
void (async () => {
const sessionId = await createSessionAndOpen();
if (!sessionId) {
setPrompt(text);
return;
}

await sendPrompt({
mode: "prompt",
text,
resolvedText: text,
parts: [{ type: "text", text }],
attachments: [],
});
})();
}


Expand Down
5 changes: 3 additions & 2 deletions packages/app/src/app/pages/session.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1967,10 +1967,10 @@ export default function SessionView(props: SessionViewProps) {
return;
}
} catch {
// Fall back to slash-command setup below.
// Fall back to prompt-based setup below.
}

const text = slashCommand;
const text = SOUL_SETUP_TEMPLATE.body || "Give me a soul.";
handleSendPrompt({
mode: "prompt",
text,
Expand Down Expand Up @@ -2826,6 +2826,7 @@ export default function SessionView(props: SessionViewProps) {
<div class="mt-1 text-xs text-dls-secondary leading-relaxed">
Keep your goals and preferences across sessions with light scheduled check-ins.
Tradeoff: more autonomy can create extra background runs, but revert is one command.
Audit setup and heartbeat evidence from the Soul section.
</div>
</button>
</div>
Expand Down
Loading
Loading