2 Commits

Author SHA1 Message Date
Codex Review
cc78ba3f45 Collapse duplicate native lifecycle bursts for attached tmux sessions
Attached multi-pane dev sessions were waking OpenClaw multiple times for
what operators experience as one session-start, prompt-submit, or stop
burst. The bridge now keeps a short-lived per-worktree dedupe ledger keyed
by tmux session (and normalized prompt for submit bursts) so the first
signal still ships while repeated pane/client echoes are collapsed before
reaching downstream native gateways.

Constraint: Duplicate bursts can come from separate panes or clients that share one tmux session
Constraint: Preserve the first lifecycle alert and avoid adding dependencies
Rejected: Deduplicate on sessionId alone | pane-local Claude sessions do not share a stable session id
Rejected: Fix only downstream Clawhip routing | duplicate traffic should be suppressed before gateway dispatch
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep prompt-submit collapse keyed on tmux session plus normalized prompt unless the UserPromptSubmit bridge contract changes
Tested: npx vitest run src/openclaw/__tests__/*.test.ts
Tested: npx vitest run src/hooks/__tests__/bridge-openclaw.test.ts
Tested: npx tsc --noEmit
Not-tested: Live OpenClaw delivery against a real attached multi-pane dev tmux session
2026-04-10 17:37:42 +00:00
Bellman
fc226e7547 chore(release): v4.7.10 - Bedrock routing, team hardening, session search (#1549)
* feat(setup): add rtk token optimization integration

* revert(setup): remove RTK integration from PR #1489

* fix(hooks): fail open on critical context exhaustion

* fix(skill): harden omc-teams tmux and agent validation

* Add Ralph critic selection for verification

* fix(doctor): accept supported omc config keys

* feat(openclaw): normalize native clawhip signals

* fix: skip legacy agent sync when plugin agents exist

* fix(hud): preserve stale usage limits on API failures

* Reduce startup OMC guidance context

* fix: clean up stale transient files on session end (#1510)

- session-end: cleanupTransientState now removes agent-replay-*.jsonl,
  last-tool-error.json, hud-state.json, hud-stdin-cache.json,
  idle-notif-cooldown.json, *-stop-breaker.json, cancel-signal files
  inside session dirs, and empty session directories
- keyword-detector: activateState adds project_path field for parity
  with TypeScript activateUltrawork in bridge.ts
- persistent-mode: readStateFileWithSession adds fallback scan of all
  session directories when session-scoped path lookup fails

* fix(hud): reduce transient usage API retry hammering (#1513)

* fix(hooks): add missing continue: false to persistent-mode.cjs Stop hook

The .cjs Stop hook outputs `{ decision: "block" }` without
`continue: false` when blocking stops for active modes. The original
fix (#1216) added `continue: false` to the .mjs scripts but the .cjs
version was never updated, and subsequent commits (#1306, #1330, #1374,
#1480, #1482) did not carry over this fix.

Since hooks.json references the .cjs version, the plugin Stop hook has
been missing hard-block capability, allowing sessions to end mid-execution.

- Add `continue: false` to all 12 blocking outputs in persistent-mode.cjs
- Add `continue: false` to context-guard-stop.mjs (1 output)
- Add `continue: false` to code-simplifier.mjs and its template (1 each)

Closes #1516

* feat(doc-specialist): add first-pass context hub guidance (#1519)

* Add skill pipeline handoff metadata (#1520)

* chore: remove stale root development artifacts (#1526)

* docs(rebrand): update scoped guidance docs (#1527)

* docs: rebrand main README to oh-my-openagent (#1528)

* docs: rebrand localized readmes to oh-my-openagent (#1529)

* revert: undo unauthorized rebrand PRs 1527-1529

* docs: fix outdated install references in REFERENCE.md

- Update platform support table: "curl or npm" → "Claude Code Plugin"
  for macOS/Linux, consistent with the deprecation notice at the top
  of the Installation section
- Replace deprecated curl uninstall one-liner with the plugin uninstall
  command (/plugin uninstall oh-my-claudecode@oh-my-claudecode)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: remove stale analytics references

* fix(team): port startup hardening from omx

* fix(team): finish runtime hardening port

* fix(team): resolve worktree mailbox trigger paths

* fix(hud): avoid repeated watch mode initialization

* feat: add session history search

* fix(team): require real startup evidence

* fix(routing): normalize explicit model IDs in all code paths (#1415)

The prior fix (PR #1464) only normalized auto-injected models but missed
two paths where full model IDs like 'claude-sonnet-4-6' leaked through:

1. enforceModel() passed explicitly-provided models as-is without
   normalizing to CC aliases (sonnet/opus/haiku)
2. buildLaunchArgs() in model-contract.ts passed model directly to
   --model flag for team worker launches

Extract normalizeToCcAlias() helper and apply it in both paths.
Add 5 tests covering explicit ID normalization and Bedrock ID handling.

Closes #1415

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(release): bump version to v4.7.10

Version bumps:
- package.json: 4.7.9 → 4.7.10
- .claude-plugin/plugin.json: 4.7.9 → 4.7.10
- .claude-plugin/marketplace.json: 4.7.9 → 4.7.10
- CHANGELOG.md: Updated release header

Includes rebuilt dist artifacts for:
- Bedrock model routing fixes
- Team runtime hardening
- Session history search feature
- Lazy agent loading

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: ChoKhoOu <38033263+ChoKhoOu@users.noreply.github.com>
Co-authored-by: Yong <yong@levvels.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Carlos Cubas <carloscubas82@gmail.com>
2026-03-11 10:12:37 +09:00