Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
19f4e38
fix(web): keep p2p discussion controls visible
Apr 17, 2026
db1acef
feat(memory): recall template filter + cap rule + per-session dedup
Apr 17, 2026
c0f818f
Harden cursor and copilot transport providers
Apr 17, 2026
3d74532
Separate embedding model cache from app code layers
Apr 17, 2026
3de8c2e
Harden tmux retries for E2E reconnect races
Apr 17, 2026
fc591b9
Fix Docker embedding preload config path
Apr 17, 2026
01230c8
Make node-pty optional for Linux CI
Apr 17, 2026
9af36c8
Skip Codecov upload without token
Apr 17, 2026
897ea27
Show startup memory at session launch
Apr 17, 2026
2963af5
fix(supervision): fire on idle when Auto is enabled against an alread…
Apr 17, 2026
375e07e
Fix Codecov token checks in CI workflow
Apr 17, 2026
31b2117
Backfill startup memory and auto-create durable notes
Apr 18, 2026
b950a5e
Fix qwen preset transport propagation
Apr 18, 2026
c9265b3
Surface memory recall status in timeline
Apr 18, 2026
1a2b6b4
fix(web): classify copilot and cursor as sdk sessions
Apr 18, 2026
9434c02
Restore transport message recall and add status hints
Apr 18, 2026
9abcc86
Ignore local imcodes and opencode files
Apr 18, 2026
c9ac84e
Serialize tmux server priming in tests
Apr 18, 2026
8c88161
Retry nested npm installs in CI
Apr 18, 2026
d0ca2ad
Add configurable memory recall threshold
Apr 18, 2026
fc96b2b
Lower default memory recall threshold
Apr 18, 2026
a4d2d51
fix(session): block known test sessions before creation
Apr 18, 2026
6370548
Add advanced memory scoring controls
Apr 18, 2026
247f9a2
Unify processing preset selection for Qwen
Apr 18, 2026
4aaab4f
fix(test-guard): catch restorecheck and shutdown sessions
Apr 18, 2026
d1b43a1
fix(context): filter memory noise from stored projections
Apr 18, 2026
030cf8a
Unify transport runtime gating in web UI
Apr 18, 2026
e8e6537
Add manual memory deletion controls
Apr 18, 2026
b75f136
Add model selection for Copilot and Cursor sessions
Apr 18, 2026
9c222db
Fix daemon reconnect e2e session naming
Apr 18, 2026
48376ca
Stabilize tmux-backed e2e session names
Apr 18, 2026
0b159ea
Refresh memory messaging in README and landing
Apr 18, 2026
0ade18d
Subscribe transport sessions to shared timeline updates
Apr 18, 2026
b24dcd6
Fix transport history sync and tmux priming races
Apr 18, 2026
809f123
Revert transport terminal auto-subscribe
Apr 18, 2026
7c8779b
Stabilize transport subscriptions and e2e timing
Apr 18, 2026
ab7a7d1
Fix leaked test session cleanup on startup
Apr 18, 2026
4d1f443
Unify sdk session labels and badges
Apr 18, 2026
0c933f7
Unify sdk transport subscriptions in app
Apr 18, 2026
58ec520
Force ws refresh on mobile app resume
Apr 18, 2026
6e60a16
Unify CLI process sends with recall pipeline
Apr 18, 2026
cbdea6a
Fix reconnect e2e persistence assertions under test guard
Apr 18, 2026
cfa6331
fix: daemon stability — silent ServerLink when disconnected, safe cod…
Apr 18, 2026
7486216
Fix Copilot/Cursor transport providers and stabilize transport reconnect
Apr 18, 2026
087f4a6
Gate recall/startup-memory to actual new conversations
Apr 18, 2026
da0c378
Narrow isImperativeCommand so prose isn't classified as ops input
Apr 18, 2026
2986702
Add optimistic send UX — spinner while sending, red ! on failure with…
Apr 18, 2026
d22a89f
Extend optimistic UX to watch; compact memory inputs; brighter diff b…
Apr 18, 2026
df2832c
Stop HF embedding model redownload on unrelated server dep bumps
Apr 18, 2026
c4c3881
Add cross-agent auditing & planning to the landing tagline (7 locales)
Apr 18, 2026
8d423c6
Split tagline into three distinct sentences (memory layer vs. cross-a…
Apr 18, 2026
de116ac
Rewrite cross-agent hero copy — both planning AND post-implementation
Apr 18, 2026
b2329bb
Unify preset + model into a single chip selector for processing config
Apr 18, 2026
6e02f4d
Reframe cross-agent hero copy as a feature, not a mandate
Apr 18, 2026
82b3247
Stop duplicate Related-history cards — dedup memory at store + recall
Apr 18, 2026
5ad4b9c
Collapse processing model selector into a single compact chip row
Apr 18, 2026
aa627c1
Persist per-projection embeddings — memory recall 53× faster
Apr 18, 2026
e225e5d
Fix e2e: add encodeEmbedding/decodeEmbedding to mocked embedding module
Apr 18, 2026
b391b4b
Auto-resend across both transport runtime-loss paths
Apr 18, 2026
399c3f2
Surface cross-agent auditing/planning as the second hero pillar in al…
Apr 18, 2026
51448cf
Extend optimistic-UX send+retry to sub-session windows
Apr 18, 2026
7677029
Collapse skipped-recall memory-context cards by default
Apr 18, 2026
fc8afa2
Extend optimistic-UX send+retry to sub-session cards
Apr 18, 2026
5a5eee3
Pin "Last sent" message at top of chat when it scrolls off the viewport
Apr 18, 2026
1db6a30
Split preset vs model into two labeled rows — they're distinct dimens…
Apr 18, 2026
f32fc40
Fix pinned "Last sent" in sub-session card + window — follow real scr…
Apr 18, 2026
8f349e1
Keep queued sends out of the timeline until the drain actually dispat…
Apr 18, 2026
31bdae4
Fix Auto supervision reliability and settings UX
Apr 18, 2026
c4a02a8
Add Chinese regression test for Auto completion guardrail
Apr 18, 2026
5607493
Add custom supervision instructions per session
Apr 18, 2026
1881baf
Add IM.codes workflow background to supervision prompts
Apr 18, 2026
4d4a5e7
Clarify supervision handling for IM.codes workflows
Apr 18, 2026
b796c00
Promote supervised automation in README and landing
Apr 18, 2026
c1d76ab
Split supervision defaults and session settings
Apr 18, 2026
c9cdaeb
Add Qwen coding plan guidance to session creation
Apr 18, 2026
c5e8edb
Force --auth-type on qwen CLI spawn for preset sessions
Apr 18, 2026
ddfaf31
i18n: sync README locales + landing copy fixes; 📁 per-session browse-…
Apr 18, 2026
f13c511
fix: skip startup-memory DB queries on session restart
Apr 18, 2026
dd8ebe2
Bind startup-memory timeline card to provider-accept commit boundary
Apr 18, 2026
6f9a5e0
Mobile-safe dialogs + compact queue-collapsed pill
Apr 18, 2026
db85909
Stop leaking IM.codes capability background into supervision continue…
Apr 19, 2026
cdfa5f2
Fix Copilot/Cursor chat subscriptions — remove runtimeType guard bloc…
Apr 19, 2026
7e000a6
Fix Copilot/Cursor chat subscriptions — include runtimeType in transp…
Apr 19, 2026
9172843
Fix CI: LIKE prefix gap + flaky sdk-transport-restore polling
Apr 19, 2026
2ff547e
Fix Copilot/Cursor sub-session start — include extra fields for all t…
Apr 19, 2026
7937dbf
Fix Copilot/Cursor subsession.start: use isTransportSessionAgentType …
Apr 19, 2026
b9034bc
Fix CI E2E: skip real-qwen-CLI test on runners without the binary
Apr 19, 2026
e4d8fc6
Move 📁 file-browser button from input row to session header
Apr 19, 2026
c286898
Remove double safe-area-inset on mobile — fixes huge gap under iOS st…
Apr 19, 2026
87a2cbf
Move 📁 from session-controls into sub-session window header
Apr 19, 2026
9d767d6
Raise sdk-transport-restore polling budget for slow CI runners
Apr 19, 2026
2e63453
restore /compact to SDK quick command defaults
Apr 19, 2026
96218b5
Emit initiator user.message echo on P2P success so optimistic bubble …
Apr 19, 2026
9e7d42c
Wire /compact through summary-compressor with proper ContextNamespace
Apr 19, 2026
14a6eb4
Intercept P2P commands instead of echoing them into the main chat
Apr 19, 2026
5131515
fix(p2p): treat missing config entries as included; surface P2P error…
Apr 19, 2026
d87f37a
Fix Docker build TS2352 on command.ack error-toast cast
Apr 19, 2026
6c1f48d
fix: SDK brain restart loop + compression OOM cascade + state=error a…
Apr 19, 2026
93b46de
Give each sub-session its own FileBrowser rooted at sub.cwd
Apr 19, 2026
d9133ba
Add reliable command.ack delivery (daemon outbox + server grace window)
Apr 19, 2026
a14b26d
Warm up embedding model on daemon startup
Apr 19, 2026
1f3e2e6
Surface full Copilot/Cursor model lists in the web model picker
Apr 19, 2026
cd2b8da
Fix Qwen preset: model display + OAuth label leak + auto-default
Apr 19, 2026
b059e69
Revert auto-default qwen preset in StartSubSessionDialog
Apr 19, 2026
5ce0323
Override Qwen CLI identity when preset is active
Apr 19, 2026
91e9ae8
Stop "Terminal stream unavailable" red error on fresh transport sessions
Apr 19, 2026
45c7887
Render Codex WebSearch query from action payload (not just top-level)
Apr 19, 2026
bdf279d
Fix cc-presets test: account for new identity-override systemPrompt
Apr 19, 2026
482767e
Fix mode-aware-terminal-subscribe E2E: revert overly broad startPipe …
Apr 19, 2026
673ef00
Emit command.failed when rate-limiter drops a session.send
Apr 20, 2026
ab064b9
Route transport-path command.ack through ack-outbox
Apr 20, 2026
57452e3
Fix web subscribe/unsubscribe flap loop that saturated server rate-limit
Apr 20, 2026
004ad37
Fix WS message loss on mobile background/foreground cycles
Apr 20, 2026
69dcc24
Add HTTP timeline backfill on WS reconnect as race-proof safety net
Apr 20, 2026
9b63136
Fix preset context window for transport sessions
Apr 20, 2026
f0f9ea1
Fix copilot/cursor terminal-error spam and stale model dropdown
Apr 20, 2026
d735e8f
Add global supervision instructions with per-session override
Apr 20, 2026
896a0f1
Add web e2e test for session override-global checkbox
Apr 20, 2026
46e79a5
Extend Auto supervision to qwen presets (env bundles)
Apr 20, 2026
f9fe215
Stop leaking SDK subprocesses; share codex app-server across consumers
Apr 20, 2026
a41b7e3
Emit visible checking note on implicit idle-triggered supervision
Apr 20, 2026
c930e55
Skip P2P retry prompt when agent wrote to file during the race window
Apr 20, 2026
b566609
Fix supervision idle-boundary automation
Apr 20, 2026
76ef3ae
Ignore qwen local workspace artifacts
Apr 20, 2026
81bdc9d
Harden supervision completion guardrails
Apr 20, 2026
23f06a9
Rewrite supervision hero to center custom instructions and drop the s…
Apr 20, 2026
20440d7
fix: WebSocket + FIFO-reader leaks causing 425MB/min RSS growth to OOM
Apr 20, 2026
4e84ced
fix(codex-sdk): WebSearch chat row shows readable label instead of ra…
Apr 20, 2026
a38da6f
feat(web): background HTTP timeline backfill on every session mount
Apr 20, 2026
9c24593
feat(web): mount backfill cooldown + app-reopen wipe
Apr 20, 2026
3e246ce
fix(terminal-streamer): serialize startPipe per session to prevent or…
Apr 20, 2026
061bc3c
fix(qwen): preserve ccPreset + sticky state across transport restart
Apr 20, 2026
bc1a496
fix(transport-history): tail-read JSONL replay — stop loading 170MB f…
Apr 20, 2026
7fde9ff
fix: reverse-chunk tail scan for transport history + tail-read p2p su…
Apr 20, 2026
93f828a
Keep queued transport sends out of timeline
Apr 20, 2026
251943f
fix(summary-compressor): serialize compression — one-at-a-time, drop …
Apr 20, 2026
27fca2d
fix(daemon): stop crash-loop when tmux server isn't ready at boot
Apr 20, 2026
80dbf36
fix(transport-relay): silence ephemeral out-of-band provider sids
Apr 20, 2026
2260a66
fix(web): force timeline refresh on foreground / push-notification open
Apr 20, 2026
6d4cc4f
feat(observability): instrument timeline history pull path with laten…
Apr 20, 2026
4c47fc8
fix(supervision): global custom instructions actually reach every ses…
Apr 20, 2026
2b2516b
fix(web): supervision preset auto-pins its env-bundled model
Apr 21, 2026
b65a17c
feat(file-preview): add Copy path / Insert path buttons to preview he…
Apr 21, 2026
3872ec0
fix(web): debounce Daemon Offline badge to match server reconnect grace
Apr 21, 2026
be0a6b5
fix(web): notification-tap no longer lands on empty timeline
Apr 21, 2026
6e3ff5b
fix(web): sub-session bar no longer stuck hidden after app resume
Apr 21, 2026
23717b7
fix(supervision): label user rules by real source, not hardcoded session
Apr 21, 2026
792c00c
fix: dedupe runtime config probes
Apr 21, 2026
d45fa1c
fix(supervision): require actionable nextAction or escalate to ask_human
Apr 21, 2026
3b88db9
fix(web-sidebar): sub-session dot stuck gray after reconnect / fresh …
Apr 21, 2026
a37c0e7
fix(quick-input): block PUT /api/quick-data before first hydration
Apr 21, 2026
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
32 changes: 15 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ jobs:
cache: 'npm'
- run: npm ci
- name: Install server deps
run: npm ci
working-directory: server
run: ./scripts/ci-npm-ci.sh server
- name: Daemon
run: npx tsc --noEmit
- name: Server
Expand Down Expand Up @@ -161,8 +160,7 @@ jobs:
node-version: ${{ env.NODE_VERSION_PRIMARY }}
cache: 'npm'
- run: npm ci
- run: npm ci
working-directory: web
- run: ./scripts/ci-npm-ci.sh web
- run: cd web && npx vitest run --config vitest.unit.config.ts

web-tests-components:
Expand All @@ -175,8 +173,7 @@ jobs:
node-version: ${{ env.NODE_VERSION_PRIMARY }}
cache: 'npm'
- run: npm ci
- run: npm ci
working-directory: web
- run: ./scripts/ci-npm-ci.sh web
- run: cd web && npx vitest run --config vitest.components.config.ts

# FileBrowser component test skipped in CI (OOM — renders full 1300-line component in jsdom).
Expand All @@ -195,8 +192,7 @@ jobs:
cache: 'npm'
cache-dependency-path: package-lock.json
- run: npm ci
- run: npm ci
working-directory: server
- run: ./scripts/ci-npm-ci.sh server
- run: npm run test:server
- name: Run server-native tests (auth-flow, proxy-addr — require server/node_modules)
run: npm test
Expand Down Expand Up @@ -284,6 +280,8 @@ jobs:
name: Coverage Report
runs-on: ubuntu-latest
needs: [unit-tests, web-tests-unit, web-tests-components]
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
Expand All @@ -296,18 +294,20 @@ jobs:
run: tmux new-session -d -s init && tmux kill-session -t init
- run: npm ci
- name: Install web deps (needed for tsx component tests)
run: npm ci
working-directory: web
run: ./scripts/ci-npm-ci.sh web
- name: Install server deps (needed for server route tests)
run: npm ci
working-directory: server
run: ./scripts/ci-npm-ci.sh server
- run: npm run build
- run: npm run test:coverage
- name: Upload to Codecov
if: ${{ env.CODECOV_TOKEN != '' }}
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
token: ${{ env.CODECOV_TOKEN }}
fail_ci_if_error: false
- name: Skip Codecov upload when token is unavailable
if: ${{ env.CODECOV_TOKEN == '' }}
run: echo "Skipping Codecov upload because CODECOV_TOKEN is not configured for this workflow context."
- name: Comment PR with coverage diff
if: github.event_name == 'pull_request'
uses: davelosert/vitest-coverage-report-action@v2
Expand Down Expand Up @@ -337,11 +337,9 @@ jobs:
- run: npm install -g npm@11.11.1
- run: npm ci
- name: Install web deps
run: npm ci
working-directory: web
run: ./scripts/ci-npm-ci.sh web
- name: Install server deps
run: npm ci
working-directory: server
run: ./scripts/ci-npm-ci.sh server
- run: npm run build
- name: Set version
run: npm version ${{ needs.docker.outputs.npm_version }} --no-git-tag-version
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ docs/*.local.md
.claude/
.codex/
.gemini/
.qwen/
.imcodes/
.opencode/
opencode.json

# System
.DS_Store
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ The web project uses `i18next` with `react-i18next` for internationalization.
- **Pod-sticky routing (MANDATORY for daemon-dependent requests)**: The server runs multiple replicas. Each daemon connects to ONE pod via WebSocket. The ingress uses `:serverId` in the URL path to route requests to the pod holding that daemon's WS. Any endpoint that depends on the daemon (file transfer, session commands, Watch API) **MUST** include `:serverId` in the URL path (e.g., `/api/server/:serverId/...`). In-memory state (download tokens, WsBridge instances, terminal streams) is per-pod — requests without serverId routing will hit a random pod and fail.
- Server secrets (`JWT_SIGNING_KEY`) are set via environment variables, never committed.
- E2E tests require tmux. They are auto-skipped when `SKIP_TMUX_TESTS=1` or inside a Claude Code session (`CLAUDECODE` env var set).
- **MANDATORY — Test session hygiene:** Any e2e/integration test that creates tmux sessions, main sessions, sub-sessions, or temporary projects/cwds **MUST** use naming/path patterns covered by `shared/test-session-guard.ts`. If a new test introduces a new naming family, you **MUST** update `shared/test-session-guard.ts` and its tests in the same change. Leaked test sessions must never persist to `~/.imcodes/sessions.json`, must never be written to the server DB, and must be cleaned from live terminal backends on daemon startup.
- The server TypeScript project is stricter (`noUnusedLocals`, `noImplicitReturns`). Both daemon and server projects must compile cleanly.
- **Shared code between daemon, server, and web**: Use `shared/` directory (NOT `src/shared/`). Server tsconfig includes `../shared/**/*`. Import path from server: `../../../shared/foo.js`. Import path from daemon/test: `../../shared/foo.js`. Import path from web: `@shared/foo.js` (Vite alias configured in `web/vite.config.ts`). The `shared/` dir is copied into Docker image by `Dockerfile` (`COPY shared/ ./shared/`). **NEVER** import across project boundaries with `../../../src/` paths — they break at runtime in Docker.
- **Web tsconfig is stricter** than daemon (`noUnusedLocals`). The Docker build runs `cd web && npm run build` which will fail on unused variables/imports that pass `npx tsc --noEmit` in daemon. Always run `cd web && npx tsc --noEmit` before pushing.
Expand Down
21 changes: 16 additions & 5 deletions README.i18n/README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
[English](../README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [Español](README.es.md) | [Русский](README.ru.md) | [日本語](README.ja.md) | [한국어](README.ko.md)


**La capa de mensajería para agentes.**
**El IM para agentes. Memoria compartida, ejecución supervisada y auditoría cruzada entre proveedores de IA.**

IM.codes es un mensajero especializado para agentes de programación con IA. Te permite seguir sesiones largas desde iPhone, iPad, Apple Watch, móvil o web, con acceso a terminal, navegación de archivos, vistas de Git, vista previa de localhost, notificaciones y flujos multiagente integrados. Funciona con [Claude Code](https://github.com/anthropics/claude-code), [Codex](https://github.com/openai/codex), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [OpenClaw](https://openclaw.com) y [Qwen](https://github.com/QwenLM/qwen-agent).
IM.codes ofrece a los coding agents una capa de memoria compartida entre proveedores. Convierte el trabajo completado en contexto reutilizable y vuelve a inyectar el historial adecuado en sesiones futuras. Funciona con [Claude Code](https://github.com/anthropics/claude-code), [Codex](https://github.com/openai/codex), [Gemini CLI](https://github.com/google-gemini/gemini-cli), GitHub Copilot, Cursor, OpenCode, [OpenClaw](https://openclaw.com) y [Qwen](https://github.com/QwenLM/qwen-agent), además de terminal, archivos, vistas Git, localhost preview, notificaciones, flujos multiagente y streaming nativo para agentes transport. Auto supervision integrado puede juzgar los turnos completados, seguir trabajando de forma autónoma y, si quieres, ejecutar un bucle de auditoría y retrabajo antes de devolverte el control. La discusión P2P integrada permite que varios modelos revisen y auditen los planes y las implementaciones de los demás, reduciendo de forma eficaz las omisiones, puntos ciegos y sesgos de un solo modelo.

> **Nota:** Este archivo es una traducción. **El README en inglés (`../README.md`) es la versión canónica.** Si hay alguna diferencia, prevalece la versión en inglés.

Claude Code y Codex ahora admiten dos modos de integración: CLI y SDK.
Varios agentes admiten dos modos de integración: CLI y SDK.

## Capturas

Expand Down Expand Up @@ -58,7 +58,7 @@ La compatibilidad con Apple Watch cubre monitorización rápida de sesiones, con

<a href="https://apps.apple.com/us/app/im-codes/id6761014424"><img src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg" height="40" alt="Download on the App Store" /></a>

Compatible con iPhone, iPad y Apple Watch. También disponible como [web app](https://app.im.codes) y mediante `npm install -g imcodes` (CLI del daemon).
Compatible con iPhone, iPad y Apple Watch. También disponible como [web app](https://app.im.codes).

## Por qué

Expand All @@ -76,11 +76,22 @@ IM.codes convierte continuamente el trabajo ya resuelto de los agentes en memori

- **Se guarda problema → solución, no ruido de logs.** Solo se materializan las salidas finales `assistant.text`; se excluyen deltas en streaming, tool calls, tool results y ruido intermedio.
- **Memoria personal con sincronización opcional en la nube.** La memoria cruda y la procesada permanecen siempre en local; los resúmenes procesados pueden sincronizarse opcionalmente con un pool en la nube a nivel de usuario compartido entre tus dispositivos.
- **Enterprise Shared Context consultable.** Los equipos pueden publicar memoria reutilizable en ámbitos workspace/project, inspeccionarla desde la UI, consultarla y ver estadísticas, en lugar de esconder contexto dentro de prompts invisibles.
- **Enterprise Shared Context consultable.** Los equipos pueden publicar memoria reutilizable en ámbitos workspace/project, inspeccionarla desde la UI, consultarla y ver estadísticas, en lugar de esconder contexto dentro de prompts invisibles. Esta parte sigue en desarrollo activo y todavía no ha pasado pruebas completas de producción.
- **Recuperación multilingüe.** La búsqueda semántica local y el recall del servidor con pgvector usan embeddings multilingües para encontrar soluciones relacionadas entre inglés, chino, japonés, coreano, español, ruso y repos mixtos.
- **Inyección automática donde importa.** El historial relevante se inyecta tanto por mensaje como al iniciar la sesión, con tarjetas en la timeline que muestran qué se recuperó, por qué, la puntuación de relevancia, el número de recalls y el último uso.
- **Visible y controlable por el usuario.** La UI de Shared Context separa raw events, processed summaries, cloud memory y enterprise memory, con controles de consulta, vista previa, archive/restore y configuración de procesamiento.

## Ejecución Supervisada y Auto Audit

IM.codes puede conducir sesiones de agent compatibles turno a turno — un supervisor con tus propias instrucciones evalúa cada turno completado en el límite idle y decide auto-continuar, devolver el control o disparar un bucle de auditoría, en lugar de que tengas que escribir "continue" cada ronda.

- **Modos Auto por sesión.** Configura `off`, `supervised` o `supervised_audit` por sesión, en vez de forzar una sola política en todo el sistema.
- **Comprobaciones de finalización en el límite idle.** Cuando un turno termina, IM.codes puede clasificarlo como `complete`, `continue` o `ask_human` y enviar el siguiente continue prompt dentro de la misma sesión.
- **Automatización fail-closed.** Auto supervision permanece visible en la timeline y en el footer, usa decisiones estructuradas y te devuelve el control si hay timeout, salida inválida o mala configuración.
- **Bucle opcional audit → rework.** En `supervised_audit`, un turno completado puede entrar automáticamente en un pipeline de auditoría y reenviar un brief de retrabajo a la misma sesión antes de devolverte el control.
- **Valores globales + overrides por sesión.** Define una vez el backend/modelo/timeout por defecto del supervisor y, cuando haga falta, sobrescribe backend/modelo/timeout, modo de auditoría e instrucciones personalizadas en cada sesión.
- **Pensado para flujos reales de IM.codes.** Auto supervision entiende flujos de OpenSpec, revisiones P2P y coordinación entre agentes con `imcodes send` como pasos válidos del agente, no como una razón inmediata para parar y pedir a un humano.

## Funciones

### Terminal remota
Expand Down
21 changes: 16 additions & 5 deletions README.i18n/README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

[English](../README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [Español](README.es.md) | [Русский](README.ru.md) | [日本語](README.ja.md) | [한국어](README.ko.md)

**AI エージェントのための IM。**
**エージェントのための IM。共有メモリ、監督付き実行、そして AI プロバイダー横断の監査。**

IM.codes は AI コーディングエージェント向けの専用メッセンジャーです。iPhone、iPad、Apple Watch、モバイルや Web から長時間動作する agent session にアクセスし、ターミナル、ファイル閲覧、Git 変更、localhost プレビュー、通知、マルチエージェント連携を扱えます。Claude Code、Codex、Gemini CLI、OpenClaw、Qwen に対応します
IM.codes は coding agent のための、プロバイダーをまたぐ共有メモリレイヤーです。完了した作業を再利用可能なコンテキストとして蓄積し、適切な履歴を後続 session に再注入します。対応先は Claude Code、Codex、Gemini CLI、GitHub Copilot、Cursor、OpenCode、OpenClaw、Qwen などで、ターミナル、ファイル閲覧、Git 変更、localhost プレビュー、通知、マルチエージェント連携、transport 系 agent のネイティブストリーミングも備えています。内蔵の Auto supervision は完了済みターンを判定し、自律的な継続や監査/手戻りループまで行ったうえで制御を返せます。P2P ディスカッションを内蔵——複数のモデルが互いの計画と実装をレビュー・監査し合い、単一モデルの見落とし・盲点・バイアスを効果的に減らします

> これは翻訳版です。**正式な内容は英語版 README(`../README.md`)です。** 差異がある場合は英語版を優先してください。

Claude Code と Codex はどちらも CLI と SDK の両方で接続できます。
複数のエージェントが CLI と SDK の両方で接続できます。

## スクリーンショット

Expand Down Expand Up @@ -56,7 +56,7 @@ Apple Watch ではセッションの素早い確認、未読件数、push 通知

<a href="https://apps.apple.com/us/app/im-codes/id6761014424"><img src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg" height="40" alt="Download on the App Store" /></a>

iPhone、iPad、Apple Watch に対応しています。[Web App](https://app.im.codes) と `npm install -g imcodes` による daemon CLI も利用できます。
iPhone、iPad、Apple Watch に対応しています。[Web App](https://app.im.codes) も利用できます。

## なぜ作ったか

Expand All @@ -72,11 +72,22 @@ IM.codes は完了済みのエージェント作業を継続的に再利用可

- **保存するのは 問題 → 解決 の要約であり、ログのノイズではありません。** 記憶化されるのは最終的な `assistant.text` のみで、ストリーミング delta、tool call、tool result、中間ノイズは除外されます。
- **個人メモリは任意でクラウド同期できます。** 生データと処理済みメモリは常にローカルに残り、処理済み要約だけをユーザー単位のクラウドプールへ同期してデバイス間で共有できます。
- **Enterprise Shared Context は検索・閲覧可能です。** チームは知見を workspace / project スコープに公開し、UI 上で検索・統計確認できるため、見えない prompt 文字列として埋め込まれたままになりません。
- **Enterprise Shared Context は検索・閲覧可能です。** チームは知見を workspace / project スコープに公開し、UI 上で検索・統計確認できるため、見えない prompt 文字列として埋め込まれたままになりません。これはまだ継続開発中で、完全な本番テストは終わっていません。
- **多言語リコール。** ローカルのセマンティック検索と pgvector ベースのサーバーリコールは多言語 embedding を使うため、日本語・英語・中国語・韓国語・スペイン語・ロシア語をまたいで関連修正を見つけられます。
- **メッセージ送信時とセッション起動時に自動注入。** 関連履歴は送信前と起動時の両方で自動注入され、timeline カードに注入理由、関連度スコア、再利用回数、最終使用時刻まで表示されます。
- **ユーザーから見えて制御できる。** Shared Context UI では raw events、processed summaries、cloud memory、enterprise memory を分けて表示し、検索、プレビュー、archive/restore、処理設定を操作できます。

## 監督付き実行と Auto Audit

IM.codes は、自分で書いた supervisor の指示で、対応する agent session をターン単位で駆動できます —— 各完了ターンを idle 境界で構造化判定し、auto-continue するか、制御を返すか、audit ループを起動するかを決定します。毎ラウンド手動で "continue" を打つ必要はありません。

- **セッション単位の Auto モード。** `off`、`supervised`、`supervised_audit` をセッションごとに設定でき、全体に一つの方針を強制しません。
- **idle 境界での完了判定。** ターン完了時に IM.codes は `complete`、`continue`、`ask_human` を判定し、次の continue prompt を同じ session に送り返せます。
- **fail-closed な自動化。** Auto supervision は timeline/footer に可視のまま残り、構造化された判定を使い、タイムアウト・不正出力・設定不備時には推測せずユーザーへ制御を返します。
- **任意の audit → rework ループ。** `supervised_audit` では、完了ターンを自動で監査パイプラインに通し、必要なら同じ session に手戻り brief を戻してから制御を返せます。
- **グローバル既定値 + セッションごとの上書き。** 既定の supervisor backend/model/timeout を一度決めておき、必要に応じて backend/model/timeout・監査モード・カスタム指示を各 session で上書きできます。
- **実際の IM.codes workflow を前提。** Auto supervision は OpenSpec 作業、P2P レビュー/議論、`imcodes send` によるエージェント間連携を「人間待ち」の理由ではなく、エージェントが続けるべき正当な次の一手として扱います。

## 主な機能

### リモートターミナル
Expand Down
Loading
Loading