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
6 changes: 3 additions & 3 deletions docs/plans/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

This directory is the source of truth for Aiden's implementation plans. The engineer changing a plan owns its status row and should update it in the same change when a meaningful milestone lands.

Last refreshed 2026-10-19 against `main` at `4eb30658` (0.58.0 release). "On main" means merged after 0.58.0 and not yet in a release.
Last refreshed 2026-10-20 against `main` at `126c2dd1` (0.59.0 release). "On main" means merged after 0.59.0 and not yet in a release.

Research addition 2026-10-03 against `main` at `3f86d41af` (0.52.0): [all-PR inventory and improvement audit](aiden-pr-improvement-audit-20261003.md), [implemented Aiden knowledge/actions MVP (PR #312)](https://github.com/sambitcreate/aiden-agent/pull/312), and [json-render research and interactive chat controls specification](aiden-chat-controls-json-render-research.md). The implemented MVP includes desktop, iOS, Android and CLI TUI controls. This adds research and the bounded implementation; older release-status rows have not been globally reconciled. The Pi 1.0 stack (#299–#307) merged through PR #357 (Pi 1.0.3, 0.54.0), main pinned Pi 1.2.0 in 0.57.0 (PR #471) and now pins Pi 1.3.0 (PR #505, 0.58.0); only the frozen legacy journal harness stays on 0.87.1.

## Active and partial

- [Built-in Aiden knowledge and app actions](aiden-app-knowledge-actions-plan.md) — Merged in [PR #312](https://github.com/sambitcreate/aiden-agent/pull/312) (2026-10-15); shipped in 0.57.0. Physical release acceptance remains open. Bundled offline help and owned skill, real json-render desktop cards, native iOS/Android paired-host controls and Pi CLI selectors/admin commands. Remote revision 19, explicit owner consent, domain gates, replay receipts and registered behavioral tests. Built on Pi 0.87.1 public APIs and merged onto main's Pi 1.2.0 pins; wider actions remain separate follow-ups. [Contract research](aiden-chat-controls-json-render-research.md).
- [Interactive visuals on phones](phone-visual-viewer-plan.md) — In progress (2026-10-16) on `claude/project-thread-jxkc0z`. Owner chose tap to open: phones keep the inline snapshot and open a visual full screen in a locked-down web view served by the Mac (`GET /chats/{chatId}/visuals/{visualId}/document`, Remote revision 35 provisional, `chat-visual-viewer-v1`). Covers `render_ui` and `render_artifact`; follow-ups confirm on the phone and only fill the composer.
- [Interactive visuals on phones](phone-visual-viewer-plan.md) — Merged in [PR #514](https://github.com/sambitcreate/aiden-agent/pull/514) (2026-10-19); desktop host side shipped in 0.59.0, phones need a new TestFlight/Android build. Owner chose tap to open: phones keep the inline snapshot and open a visual full screen in a locked-down web view served by the Mac (`GET /chats/{chatId}/visuals/{visualId}/document`, Remote revision 35, `chat-visual-viewer-v1`). Covers `render_ui` and `render_artifact`; follow-ups confirm on the phone and only fill the composer.
- [Quick View cards](../superpowers/plans/2026-10-15-quick-view-cards.md) — Merged in [PR #487](https://github.com/sambitcreate/aiden-agent/pull/487) (2026-10-15); shipped in 0.57.0. Quick View becomes Claude-Code-style stacked cards (Environment, Changes, Context, Subagents) at `SidebarListItem` density.
- **Behaviour:** cards start collapsed and reorder by a right-edge grip. Each has three tiers: a summary, inline detail, and an open-in-sidebar or open-external button.
- **Visibility:** cards and rows appear only once relevant. Changes needs work or a PR, the PR row needs a created PR, Context needs the first message, and Subagents needs a run started.
Expand Down Expand Up @@ -55,7 +55,7 @@ Research addition 2026-10-03 against `main` at `3f86d41af` (0.52.0): [all-PR inv

| Plan | Status | Current state |
| -------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Workspace Artifacts](workspace-artifacts-plan.md) | In review | Plan written and built 2026-10-19 in PR #554 (all five phases, each reviewed); user guide in [docs/workspace-artifacts.md](../workspace-artifacts.md). Persistent, interactive Aiden UI pages owned by a workspace, shown in an **Artifacts** tab of the Environment panel (offered in the tools launcher) that appears only once an artifact exists. Built on the `render_ui` catalog, with host-run data sources (shell commands and workspace files) under the chat's own workspace permission, a `workspace_artifact` agent tool, and a built-in skill. Desktop (macOS and Linux) only for v1; no CLI, phone or Remote protocol change. |
| [Workspace Artifacts](workspace-artifacts-plan.md) | Implemented | Plan written and built 2026-10-19 in PR #554 (all five phases, each reviewed), merged 2026-10-19 and shipped in 0.59.0; Playwright e2e coverage is a follow-up; user guide in [docs/workspace-artifacts.md](../workspace-artifacts.md). Persistent, interactive Aiden UI pages owned by a workspace, shown in an **Artifacts** tab of the Environment panel (offered in the tools launcher) that appears only once an artifact exists. Built on the `render_ui` catalog, with host-run data sources (shell commands and workspace files) under the chat's own workspace permission, a `workspace_artifact` agent tool, and a built-in skill. Desktop (macOS and Linux) only for v1; no CLI, phone or Remote protocol change. |
| [Cache-first loading states](cache-first-loading-states-plan.md) | Active | Plan approved (2026-10-17) with desktop read snapshots, recent-chat prefetch and queued sends. iOS Home (I1) and cache-first chat open (part of I2) shipped in PR #516 (merged 2026-10-17). Audits every blank or text-only loading state on iOS, Android and the desktop renderer, and proposes one rule: saved data first, shaped skeletons only for a true first read, empty only when confirmed, quiet connection status. Starts with the iOS home screen, which hides cached Recents behind "Connecting to Aiden Agent…". No Remote protocol change. |
| [Aiden CLI](aiden-cli-plan.md) | Active | Merged to main in PR #121 (2026-09-26) and shipped in 0.50.0 on pinned Pi 0.87.1; now pinned to Pi 1.3.0 (PR #505, 0.58.0). Phases 0–6 implementation complete; macOS/Linux CLI (57 tests each), Linux native helpers, complete shared subagent suites, root TypeScript/lint, and Android client checks pass. Physical iPhone acceptance is pending an unlocked device. Phase 6 delivered QR remote pairing, scheduled-run notifications (mobile push + desktop), shared desktop memory, daemon autostart, and prebuilt binaries; see the [checklist](aiden-cli-parity-checklist.md). |
| [Simulator Devices](simulator-devices-plan.md) | Partial | Phases 0–7 merged in PR #252 (2026-09-26) and shipped in 0.50.0 behind `AIDEN_EXPERIMENTAL_DEVICES`; on by default on macOS from 0.55.0 (2026-10-07), with `AIDEN_EXPERIMENTAL_DEVICES=0` as the kill switch. Environment **Simulator** tab plus `device_*` agent tools, ported from T3 Code (MIT, `1c127066`). Consent-gated pinned `expo-device-hub@0.12.0` + `agent-device@0.21.12`; token-authenticated loopback proxy. Phases 0–3 done (spike, flagged tab shell, main-process toolchain/host/proxy/service/IPC, live stream viewer with controls and screenshot-to-chat; `test:devices` 96 pass; fake-hub Electron E2E; real-Mac acceptance passed). Phase 4 (agent `device_*` tools), Phase 5 (simulators on paired Macs over Aiden Remote; [plan](simulator-devices-phase-5-peers.md)) and Phase 6 (procedural 3D device frames; [plan](simulator-devices-phase-6-3d.md)) done. Phase 7 done: Settings → **Simulator** (consent switches, pinned/installed helper versions, prune, remove installed tools) and [`docs/devices.md`](../devices.md); onboarding coverage is a follow-up now that the flag defaults on. Agent guidance prefers `device_*`/`agent-device` for the watched device but allows shell `xcrun simctl`/`xcodebuild`/`adb` for builds, installs, logs, port forwarding, and diagnostics (T3 #13908; PR #263, 0.51.0). Remaining: real-Mac acceptance for Phases 4–6 (the flag was defaulted on before it). Android emulators and SSH hosts shipped with the [T3 parity upgrade](simulator-devices-t3-parity-plan.md) (PR #391, 0.55.0). |
Expand Down
16 changes: 10 additions & 6 deletions native/subagent-shell-runner/setsid-fixture.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ static long long monotonic_ms(void) {
static int await_publication(int fd) {
long long started = monotonic_ms();
if (started < 0) return 0;
long long deadline = started + 1500;
long long deadline = started + 1000;
for (;;) {
long long now = monotonic_ms();
if (now < 0 || now >= deadline) return 0;
Expand All @@ -41,11 +41,11 @@ static int await_publication(int fd) {

int main(int argc, char **argv) {
if (argc != 2 && argc != 3) return 64;
unsigned int detach_delay = 0;
long detach_delay_ms = 0;
int stall_publication = 0;
if (argc == 3) {
if (strcmp(argv[2], "--delay-detach") == 0) detach_delay = 1;
else if (strcmp(argv[2], "--stall-detach") == 0) detach_delay = 3;
if (strcmp(argv[2], "--delay-detach") == 0) detach_delay_ms = 200;
else if (strcmp(argv[2], "--stall-detach") == 0) detach_delay_ms = 3000;
else if (strcmp(argv[2], "--stall-publish") == 0) stall_publication = 1;
else return 64;
}
Expand All @@ -59,7 +59,8 @@ int main(int argc, char **argv) {
close(ready[1]);
close(grant[0]);
// Stay in the command until detachment and PID publication are confirmed.
// Bound the wait below the shell test's existing two-second deadline.
// Bound the wait to half the shell test's two-second deadline, leaving
// the other half for process startup on a loaded runner.
int confirmed = await_publication(ready[0]);
close(ready[0]);
unsigned char allowed = 1;
Expand All @@ -78,7 +79,10 @@ int main(int argc, char **argv) {
}
close(ready[0]);
close(grant[1]);
if (detach_delay) sleep(detach_delay);
if (detach_delay_ms) {
struct timespec delay = {.tv_sec = detach_delay_ms / 1000, .tv_nsec = (detach_delay_ms % 1000) * 1000000L};
while (nanosleep(&delay, &delay) < 0 && errno == EINTR) {}
}
if (setsid() < 0) _exit(71);
pid_t second = fork();
if (second < 0) _exit(72);
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "aiden-agent",
"version": "0.58.0",
"version": "0.59.0",
"private": true,
"description": "A desktop AI workspace agent for local and hosted models",
"keywords": [
Expand Down
2 changes: 1 addition & 1 deletion prebuilt/native/darwin-universal/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
},
"subagent-shell-runner": {
"sha256": "cdf992e9a63d104577a27c0ddc2833fdd50bb65c123c925a4ff73a15f0dfb18e",
"source": "6679af2569fb7fea609dce1eedf99059481256f0e57c2bd7946aa59194d70575"
"source": "4dbcd343b4f0c0546f7a64b21d67c3115d29f50128e03c02d9ca149cc62b8cb7"
},
"subagent-file-mutator": {
"sha256": "44b6f97501f6a1fd77a214c97d79c96422c145b52ce85706ca13cf7a3b73fa9a",
Expand Down
2 changes: 1 addition & 1 deletion prebuilt/native/linux-arm64/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
},
"subagent-shell-runner": {
"sha256": "e400f70cf0e118b28a0028917f72beb36be3349af6ade0c9d5adc8c75981f644",
"source": "6679af2569fb7fea609dce1eedf99059481256f0e57c2bd7946aa59194d70575"
"source": "4dbcd343b4f0c0546f7a64b21d67c3115d29f50128e03c02d9ca149cc62b8cb7"
},
"subagent-file-mutator": {
"sha256": "3f877ba4817854a5e520130da35a8a9580800823f32107da0823a75d1c694337",
Expand Down
2 changes: 1 addition & 1 deletion prebuilt/native/linux-x64/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
},
"subagent-shell-runner": {
"sha256": "190ea6353dc8e26a137cafd718df76238dc23a8134535fa61c044863cc025c48",
"source": "6679af2569fb7fea609dce1eedf99059481256f0e57c2bd7946aa59194d70575"
"source": "4dbcd343b4f0c0546f7a64b21d67c3115d29f50128e03c02d9ca149cc62b8cb7"
},
"subagent-file-mutator": {
"sha256": "878bf58134892ba9f2b00c743fd1bc04fe3728db141e6941767c6393c79bde98",
Expand Down
Loading