ECC/tests/scripts
haelyra ae303fb6c1
fix(plan-canvas): deliver browser chat to the agent every time (#2739)
Feedback sent from the canvas only reached an agent through a live
/api/await long poll. When a turn ended with no await parked,
queueFeedback wrote the message to sessions.json and nothing ever
consumed it, so sending appeared to do nothing at all. The presence pill
made it worse: workingKeys had no expiry and the feedback handler never
broadcast presence, so it froze on "agent working" while nobody was
listening.

Delivery:
- Add the stop:plan-canvas-pending hook. It drains undelivered feedback
  and blocks the Stop, handing the messages to the agent, so a canvas
  message lands even when no await is running. Scoped to sessions under
  cwd so parallel agents cannot swallow each other's feedback; set
  ECC_PLAN_CANVAS_STOP_SCOPE=all to widen. Honors stop_hook_active and
  fails open on every error path.
- run-with-flags.js did not await a hook's run(), so any async hook
  silently degraded to pass-through. Fixed; plan-canvas-pending is the
  only async hook today.

Presence and indicators:
- Presence is now ended/typing/thinking/listening/queued/waiting.
  thinking and typing self-expire (90s/30s) and a 5s sweep pushes the
  decay to an idle browser, so the pill can no longer stick.
- Broadcast presence when feedback is queued, and clear the activity
  state when an agent reply lands.
- Add POST /api/session/:key/typing so agents can drive the indicator.
- Chat shows an animated dots bubble for thinking and typing, plus an
  explicit note when a message is queued with nobody listening.
  Respects prefers-reduced-motion.
- Send status reports what actually happened instead of always claiming
  the agent will pick it up.

CLI and skill:
- Add `ecc-plan-canvas pending` and `typing <file> --state ...`.
- SKILL.md documents background await as the primary pattern and makes
  replying in the canvas mandatory.

Tests: 6 new server cases covering queued presence, the typing endpoint,
state expiry and the sweep, plus a new hook suite covering delivery,
drain-once, stop_hook_active, cwd scoping and fail-open.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-09 18:15:25 -04:00
..
auto-update.test.js
build-opencode.test.js
catalog.test.js
check-unicode-safety.test.js test(ci): regression coverage for newly-covered invisible code points 2026-05-18 21:20:36 -04:00
claw.test.js
codex-hooks.test.js fix: add plugin cache health check (#2249) 2026-06-15 14:01:25 -04:00
consult.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
control-pane.test.js feat(control-pane): serve 3D agent-airspace viz + /api/proximity feed (#2320) 2026-06-25 16:45:53 -07:00
dashboard-web.test.js fix: harden local dashboard and data boundaries (#2585) 2026-07-27 11:11:29 -07:00
discussion-audit.test.js chore: gate canonical ECC release identity (#1991) 2026-05-19 06:42:17 -04:00
doctor.test.js feat: add retention feedback loop and honest support matrix (#2681) 2026-08-04 21:42:25 -04:00
ecc-dashboard.test.js
ecc-universal-bin.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
ecc.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
feedback.test.js feat: add retention feedback loop and honest support matrix (#2681) 2026-08-04 21:42:25 -04:00
gemini-adapt-agents.test.js fix: use scalar Claude agent tools (#2583) 2026-07-26 03:20:15 -07:00
github-coordination.test.js docs+chore: add README Security section; fix lint regressions on main 2026-06-16 02:08:14 -04:00
harness-audit.test.js feat: extend harness audit integration scoring (#1990) 2026-05-19 06:20:54 -04:00
install-apply.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
install-guided.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
install-plan.test.js
install-ps1.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
install-readme-clarity.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
install-sh.test.js
instinct-cli-evolve-generate.test.js fix(continuous-learning): /evolve never produces skill or agent candidates (#2664) 2026-08-04 16:57:24 -04:00
instinct-cli-evolve.test.js fix(continuous-learning): /evolve never produces skill or agent candidates (#2664) 2026-08-04 16:57:24 -04:00
instinct-cli-projects.test.js fix: clean promoted instinct sources (#2587) 2026-07-28 21:31:12 -04:00
ito-cli-bridge.test.js fix(ito-compute): complete device auth lifecycle (#2706) 2026-08-07 14:53:13 -04:00
ito-compute-sponsor.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
list-installed.test.js
loop-status.test.js
manual-hook-install-docs.test.js
memory-mcp.test.js fix(mcp): accept reserved _meta field in tools/call params (#2670) 2026-08-04 00:28:09 -04:00
memory.test.js feat: add cross-harness memory vault (#2581) 2026-07-26 02:46:59 -07:00
npm-publish-surface.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
observability-readiness.test.js
openclaw-persona-forge-gacha.test.js
operator-readiness-dashboard.test.js docs: sync live native payments gate evidence 2026-05-19 23:25:38 -04:00
orchestrate-codex-worker.test.js
orchestration-status.test.js
plan-canvas.test.js fix(plan-canvas): deliver browser chat to the agent every time (#2739) 2026-08-09 18:15:25 -04:00
platform-audit.test.js docs: sync selected-target announcement gate (#2020) 2026-05-19 22:09:45 -04:00
post-bash-command-log.test.js
preview-pack-smoke.test.js Add preview pack smoke gate 2026-05-17 15:35:23 -04:00
release-announce.test.js fix: complete Discord delivery receipts reliably (#2738) 2026-08-09 16:44:18 -04:00
release-approval-gate.test.js fix(release): derive approval gate paths from version (#2383) 2026-06-29 15:50:55 -07:00
release-heading.test.js fix: ship new Itô skills through install manifests (#2704) 2026-08-07 14:14:21 -04:00
release-publish.test.js test: normalize release workflow line endings 2026-05-18 13:53:26 -04:00
release-video-suite.test.js fix(release): derive video suite paths from version (#2384) 2026-06-29 15:50:57 -07:00
release.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
repair.test.js test: stabilize repair lifecycle on Windows 2026-05-18 03:48:51 -04:00
session-inspect.test.js
setup-options.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
setup-package-manager.test.js
setup.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
skill-create-output.test.js
sync-ecc-to-codex.test.js feat(codex): add ECC navigation guide (#2525) 2026-07-22 20:44:37 -04:00
trae-install.test.js Finalize and enhance SLSA generic generator workflow (#2197) 2026-06-15 14:01:29 -04:00
uninstall.test.js feat: add retention feedback loop and honest support matrix (#2681) 2026-08-04 21:42:25 -04:00
welcome.test.js feat(install): add guided multi-harness installer (#2649) 2026-08-06 15:39:49 -04:00
work-items.test.js feat(work-items): add 'claim' command for JIT work pickup 2026-06-18 17:07:24 -04:00