Commit Graph

1036 Commits

Author SHA1 Message Date
Codex
32fbb00dd2 fix(paired): cap consecutive reviewer silent-failure retries
The reviewer (codex) sometimes emits a final result with no visible text.
The runtime marks the run failed → handleFailedReviewerExecution
preserves status as review_ready → the follow-up scheduler re-queues
another reviewer-turn → loop. The existing round_trip / arbiter caps
never fire because round_trip_count only advances on owner-side
submissions; bot-side reviewer flakes never increment it.

Mirror the owner_failure_count pattern: add reviewer_failure_count to
paired_tasks, increment on each silent failure, and escalate via
requestArbiterOrEscalate once it reaches 2. Reset to 0 on every
successful reviewer completion path (PROCEED/REVISE/arbiter/wait-for-user)
and when the owner re-submits a fresh review cycle.

Repro chat: 1507762222724546560 (stock-adiviser). Task
33968d31-0da2-480c-85d3-7a3999822ab4 logged 11 consecutive
reviewer-turn entries with no work_items and round_trip_count stuck
at 1.
2026-05-29 23:40:35 +09:00
Codex
cdb59ce9fe fix(dashboard): preserve registered room aliases 2026-05-29 18:47:46 +09:00
Codex
85085e2782 fix(codex): align primer warmup with fixed slots 2026-05-28 18:29:51 +09:00
Codex
cf9bf08197 fix(router): escape Discord markdown delimiters instead of stripping
Previously formatOutbound stripped `*`, `_`, `~`, `|`, `` ` ``, `#`, `>`
from prose so they wouldn't trigger Discord formatting. That worked but
silently lost information — `**DONE**`, `STEP_DONE`, ~~strike~~ all
arrived in Discord with the source characters missing.

Switch to backslash-escape so the literal source text shows up while
still suppressing the formatting interpretation. Triple-backtick fenced
code blocks are still preserved verbatim.

Escape is non-idempotent (running it twice double-escapes backslashes),
so split the pipeline:

  - sanitizeForOutbound: strip internal tags + tool-call leaks + redact
    secrets. Use this for intermediate text that will pass through
    another formatOutbound call downstream (work-item storage, channel
    wrappers, session-command output).
  - formatOutbound: sanitize + neutralizeStrayMarkdown. Reserved for the
    single Discord-send boundary in channels/discord.ts.

Internal callers (message-turn-controller, session-commands, the
sendFormattedChannelMessage / sendFormattedTrackedChannelMessage /
editFormattedTrackedChannelMessage wrappers in index.ts, and the cron
reviewer-bot path) now use sanitizeForOutbound so the markdown escape
runs exactly once at the channel boundary.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 14:52:33 +09:00
Codex
890991394d remove one-shot reviewer mode 2026-05-27 12:43:15 +09:00
Codex
4e90e1d7ec fix bun path for one-shot review workspaces 2026-05-27 11:31:24 +09:00
Codex
7ed0af98a2 fix one-shot review for rooms without workDir 2026-05-27 11:20:30 +09:00
Codex
51512c9aeb add one-shot reviewer mode for single rooms 2026-05-27 10:57:57 +09:00
Codex
1509108e04 backup current stable ejclaw state 2026-05-27 10:53:31 +09:00
Eyejoker
646bc34372 [codex] Improve mobile dashboard UX (#19)
* feat(dashboard): improve mobile control plane UX

* fix(dashboard): improve mobile nav accessibility

* feat(dashboard): add mobile drawer and usage glance cards

* feat(dashboard): add compact usage matrix and i18n

* fix(dashboard): make usage-first console layout

* fix(dashboard): remove chrome and group usage rows
2026-04-26 21:29:13 +09:00
Eyejoker
5ba607644f Add read-only web dashboard MVP
Adds a disabled-by-default loopback web dashboard MVP with read-only control-plane views, prompt preview redaction, Vite React UI, and validation coverage.
2026-04-26 17:05:50 +09:00
Eyejoker
d52556fd28 fix: preserve structured attachment outputs (#17) 2026-04-25 14:41:46 +09:00
Eyejoker
a74ea4bad0 fix: preserve paired owner workspace branch invariant
Safely re-anchor drifted paired owner workspaces, guard owner completion handling, and tighten generated attachment temp-dir allowlisting.
2026-04-25 12:02:02 +09:00
Eyejoker
a459c0d47f Merge pull request #15 from phj1081/codex/parse-fenced-ejclaw-output
[codex] Parse fenced EJClaw output envelopes
2026-04-25 10:16:05 +09:00
ejclaw
cd7e35a8b0 Parse fenced EJClaw output envelopes 2026-04-25 10:14:33 +09:00
Eyejoker
5ee0859a53 Merge pull request #14 from phj1081/codex/allow-codex-warmup-state
[codex] Allow Codex warm-up state file
2026-04-25 09:33:39 +09:00
ejclaw
bd7e8a2deb Allow Codex warm-up state file 2026-04-25 09:30:40 +09:00
Eyejoker
852d3ced68 Merge pull request #13 from phj1081/codex/structured-discord-attachments
[codex] Add structured Discord attachments
2026-04-25 09:25:39 +09:00
ejclaw
3c13ab6ed8 style: format structured attachment test 2026-04-25 09:22:01 +09:00
ejclaw
83b7aef494 Add structured Discord attachments 2026-04-25 09:21:47 +09:00
Eyejoker
bdaecb2552 Merge Codex warm-up zero-window guard
Avoid repeated zero-usage Codex warm-ups
2026-04-24 19:04:59 +09:00
ejclaw
ee8b18145e fix: avoid repeated zero-usage Codex warm-ups 2026-04-24 19:04:22 +09:00
Eyejoker
2c5ab05534 Merge Codex warm-up fresh-window defaults
Restrict Codex warm-up to fresh quota windows
2026-04-24 18:56:16 +09:00
ejclaw
884aef5c99 fix: restrict Codex warm-up to fresh quota windows 2026-04-24 18:53:04 +09:00
Eyejoker
cfcac88ddb Merge optional Codex warm-up scheduler
Adds opt-in Codex warm-up with state, stagger, and failure backoff. Disabled by default.
2026-04-24 18:42:37 +09:00
ejclaw
bd56a5d765 feat: add optional Codex warm-up scheduler 2026-04-24 18:40:36 +09:00
Eyejoker
9b0ddce337 Merge EJClaw runtime hardening
Merge salvage hardening after CI pass: dist freshness guard, Codex usage fallback/path fix, IPC message_source_kind provenance, and workspace verification fixes.
2026-04-24 15:49:44 +09:00
ejclaw
deca9dab74 test: include message source migration in bootstrap expectations 2026-04-24 15:48:11 +09:00
ejclaw
e036521054 fix: salvage EJClaw runtime hardening
- add dist freshness guard to deploy flow
- preserve message source provenance for IPC injection
- harden Codex usage fallback and workspace package manager detection
- document owner branch return protocol
2026-04-24 15:02:09 +09:00
Eyejoker
a36c8a5f07 Merge dev stabilization into main
Promote STEP_DONE routing, paired telemetry, and bundled runner fixes from dev.
2026-04-24 14:12:00 +09:00
ejclaw
3eee842164 fix: restore bundled agent CLI resolution
- Upgrade EJClaw bundled Codex CLI to 0.124.0 for gpt-5.5 access
- Resolve Claude Agent SDK native binary packages via package.json
- Prefer glibc Claude binary before musl on Linux and align platform binary names
- Add regression coverage for optional package resolution
2026-04-24 13:13:11 +09:00
ejclaw
f84dccfa10 Route STEP_DONE through reviewer 2026-04-24 12:03:32 +09:00
ejclaw
6d28a4ae19 style: format paired stepdone telemetry files 2026-04-23 18:53:36 +09:00
ejclaw
9ef79e3828 Add STEP_DONE guards, verdict storage, and stale delivery suppression 2026-04-23 15:28:42 +09:00
ejclaw
afd9c7a538 Phase 0 — STEP_DONE/TASK_DONE split + owner-follow-up integration smoke 2026-04-23 13:07:20 +09:00
ejclaw
3b0875e80d test: cast readonly sandbox expectation through unknown 2026-04-22 20:59:31 +09:00
ejclaw
bf4cbd0319 test: cast readonly sandbox expectation shape 2026-04-22 20:58:17 +09:00
ejclaw
13ac26b80e test: relax readonly sandbox assertions 2026-04-22 20:56:40 +09:00
ejclaw
d8a3702b1e test: remove impossible readonly sandbox guards 2026-04-22 20:55:26 +09:00
ejclaw
921a254120 test: fix readonly reviewer sandbox assertions 2026-04-22 20:52:34 +09:00
ejclaw
5599791eae test: satisfy readonly reviewer sandbox typing 2026-04-22 20:50:58 +09:00
ejclaw
12838a8b07 review: harden readonly git checks and lint verification 2026-04-22 20:49:02 +09:00
Eyejoker
4a1d30d787 Merge pull request #7 from phj1081/dev
docs: add v0.2.3 changelog entry
2026-04-22 15:20:55 +09:00
ejclaw
977d22cea7 docs: add v0.2.3 changelog entry 2026-04-22 15:20:17 +09:00
Eyejoker
3524f04e81 Merge pull request #6 from phj1081/dev
Release v0.2.3
2026-04-22 14:59:11 +09:00
ejclaw
8b9ac7bcd9 release: bump version to v0.2.3 2026-04-22 14:58:23 +09:00
ejclaw
fa30124b46 test: align message runtime mocks with reviewer session flag 2026-04-22 06:50:56 +09:00
ejclaw
2b32b72119 paired: decouple unsafe host mode from fresh reviewer sessions 2026-04-22 06:47:52 +09:00
ejclaw
091f34ed23 paired: preserve prior owner and reviewer finals across superseded tasks 2026-04-22 06:02:27 +09:00
ejclaw
1122ace363 paired: disable latest owner final carry-forward by default 2026-04-22 05:51:43 +09:00