Commit Graph

71738 Commits

Author SHA1 Message Date
Peter Steinberger 4e9cba2aba fix(release): scope dependency conflicts to bundled plugins (#113350) 2026-07-24 08:08:55 -07:00
Omar Shahine e430a1beb2 feat(approvals): emit bold headers and labels in approval prompts (#113193)
* feat(approvals): emit bold headers and labels in approval prompts

Approval prompts carried plain-text labels, so iMessage showed no formatting
even though its send path now translates markdown into attributed-body ranges
(the markdown-core profile refactor, #113002). Emit bold on the headers and
field labels so channels that render markdown show formatted approval text:
iMessage into native ranges, other markdown channels into their native bold,
and channels that downgrade drop the markers cleanly.

Closes #85954.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7d86Ww4vJwxJwY4z1AVx6

* test(approvals): update prompt-text assertions for bold labels

* feat(approvals): bold the auto-review rationale in reaction prompts

The rationale is the reason for the interruption, so it should stand out.
Generated text, but the reaction-runtime renderers parse to an IR that
tolerates stray markers, so a rationale containing a lone marker degrades
gracefully rather than breaking the emphasis span.

* fix(approvals): preserve reaction binding and Signal rendering for bold prompts

Codex + local ClawSweeper caught that bolding the prompt headers/labels broke
downstream consumers of the visible approval text:

- Reaction/tapback binding on iMessage, Signal, and WhatsApp anchors on the
  plain `Exec approval required` / `ID:` format. Strip `**` markers in each
  channel's binding parser before matching, so binding still correlates the
  delivered prompt. Adds an iMessage bold-format binding regression test.
- Signal sent the approval payload with textMode "plain", so the markers would
  reach users literally. Switch Signal's approval sends to markdown mode;
  markdownToSignalText renders the headers as native bold. WhatsApp already
  renders markdown by default; iMessage renders via extractMarkdownFormatRuns.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7d86Ww4vJwxJwY4z1AVx6

* style(approvals): oxfmt the touched approval files

---------

Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 08:06:05 -07:00
Peter Steinberger 10484486a0 test: restore shared runtime state (#113334) 2026-07-24 07:51:10 -07:00
Peter Steinberger 44c3ec10ed fix(ui): paginate sidebar session sections independently (#113343) 2026-07-24 07:48:40 -07:00
Peter Steinberger 3b3a3d1d56 test(plugin-sdk): restore memory-host timers (#113339) 2026-07-24 07:46:18 -07:00
Peter Steinberger 6235ea55ac refactor(codex): split command handlers (#113335)
* refactor(codex): split command handlers

* refactor(codex): keep helper types private
2026-07-24 07:29:44 -07:00
Gio Della-Libera f88e7e46a1 feat: bind signed ClawHub default feed trust (#101981)
* feat: bind signed ClawHub feed trust

* fix(feeds): preserve trust and enforce expiry

* fix(feeds): enforce signed catalog HTTP contract

* fix(feeds): align signed feed validation

* fix: preserve hosted catalog trust boundaries

* fix(feeds): stage custom feed identity binding

* fix(feeds): require complete entry trust authority

* fix(feeds): retain feed schema trust context

* fix(feeds): enforce schema trust before overlays

* fix(feeds): satisfy catalog trust CI checks

---------

Co-authored-by: Gio Della-Libera <giodl@microsoft.com>
2026-07-24 07:27:09 -07:00
Peter Steinberger 07e3855b46 refactor(heartbeat): remove legacy HEARTBEAT.md runtime fallback and template repair (#113131)
The database scratch migration (3e2b3ea4) left two named upgrade bridges:
the revision-0 read-only HEARTBEAT.md fallback in the heartbeat runner and
the doctor heartbeat-template repair contribution. This deletes both; the
doctor scratch migration remains the sole upgrade path.

Merge gate: hold until the next stable release containing 3e2b3ea4 has
shipped and completed its upgrade window.
2026-07-24 07:11:19 -07:00
Peter Steinberger 7dfb660d1f fix(release): keep msteams packaging and Docker reruns reliable (#113332)
* fix(release): forward-port beta packaging repairs

* fix(ci): acknowledge sweeper token grant
2026-07-24 07:05:41 -07:00
Peter Steinberger 8d67c40939 fix(ci): restore full-grant app token for pr-ci-sweeper
Every scheduled sweep failed at token minting since the explicit
permission subset was added: actions/create-github-app-token rejects any
request exceeding the installation grant, and these installations lack
actions:write/checks:read (stale.yml succeeds with actions:read;
auto-response succeeds with neither). Requesting no subset restores the
app's full granted set, which the re-fire lane demonstrably worked with.
If the org later grants actions:write+checks:read, the explicit subset
can return.
2026-07-24 06:21:04 -07:00
Vincent Koc ebf2306c1d fix(sqlite): normalize Windows verification paths (#113313)
* fix(sqlite): normalize Windows verification paths

* test(windows): normalize backup archive fixture paths

* test(windows): separate backslash and traversal archive cases
2026-07-24 21:00:15 +08:00
Vincent Koc d2200f64af fix(doctor): apply compatibility after plugin repair (#113317) 2026-07-24 20:25:10 +08:00
Vincent Koc 48d65f94a1 fix(test): release SQLite fixtures before Windows cleanup (#113316)
* fix(test): close SQLite fixtures before Windows cleanup

* test(windows): extend fixture cleanup retries

* fix(test): avoid registry reads during fixture cleanup
2026-07-24 20:04:57 +08:00
Peter Steinberger 4302896638 fix(i18n): unwrap invented inline code 2026-07-24 07:48:30 -04:00
Peter Steinberger 4cd327e31f refactor(agents): split subagent registry internals (#113297)
* refactor(agents): split subagent registry

* fix(agents): defer registry restore until exports initialize
2026-07-24 04:44:37 -07:00
Vincent Koc 3bfc23c676 fix(backup): publish archives durably (#113302) 2026-07-24 19:12:11 +08:00
Vincent Koc 218c2fe3a5 fix(update): preserve JSON output during resume (#113298) 2026-07-24 18:56:20 +08:00
Peter Steinberger 445eea201a refactor(memory-lancedb): remove dead legacy path scan (#113299) 2026-07-24 03:43:17 -07:00
Peter Steinberger b614661646 fix(test): satisfy no-map-spread in exec approvals (#113303) 2026-07-24 03:36:19 -07:00
Pavan Kumar Gondhi 76af831155 fix: keep OAuth refresh failures terminal [AI] (#112957)
* fix: fail closed on oauth refresh errors

* fix: keep prepared auth refresh failures terminal

* fix: preserve prepared auth profile fallback
2026-07-24 15:50:49 +05:30
Pavan Kumar Gondhi 1fc81c2054 fix: reusable exec approvals apply to approved arguments (#112946)
* fix: bind allow-always exec approvals to argv

* test: update exec approval persistence expectations

* fix: hash reusable exec approval arguments

* test: pin POSIX exec approval hash expectation

* fix: match hashed exec approvals in macOS

* fix: encode exec approval argv hashes unambiguously

* fix: bind native exec approval grants to argv

* test: expect hashed exec approval patterns

* fix: ignore legacy broad exec approval grants

* fix: hash shell script allow-always grants

* fix: require argv binding for package manager grants

* fix: bind positional carrier approval grants

* fix: address approval check failures

* fix: format approval policy test

* fix: reject context-changing package manager grants

* fix: keep build-enabled pnpm dlx grants one-shot

* fix: reject npm exec context grants

* fix: catch npm exec tail context options

* fix: block npm package context approvals

* fix: block leading pnpm dlx context grants

* fix: restrict durable positional carrier grants

* docs: clarify generated exec approvals

* fix: block post-dlx pnpm context grants
2026-07-24 15:38:38 +05:30
Peter Steinberger 050475b9de refactor(agents): split tool search internals (#113296) 2026-07-24 03:04:14 -07:00
Pavan Kumar Gondhi dc4c5887fa fix: keep inline eval approvals one-shot [AI] (#112956)
* fix: classify inline eval interpreters

* fix: cover inline eval flag variants

* fix: handle snippet eval option aliases

* fix: classify debugger and runtime callbacks

* fix: tighten interpreter eval matching

* fix: cover gdb early init eval flags

* fix: cover bundled eval option forms

* fix: cover gdb eval abbreviations

* fix: cover iex and guile eval forms
2026-07-24 15:21:24 +05:30
Vincent Koc e3636852ba refactor(normalization): reuse trimmed list helpers (#113295) 2026-07-24 17:43:22 +08:00
ooiuuii 89643f6401 fix(openai): fail fast on invalid TLS certificates (#111818)
* fix(openai): stop retrying TLS certificate failures

* fix(ai): centralize TLS certificate failover policy

---------

Co-authored-by: Altay <altay@hey.com>
2026-07-24 12:34:01 +03:00
Pavan Kumar Gondhi 2628fae0da fix: recognize more shell wrappers [AI] (#112955)
* fix: recognize more shell wrappers

* fix: cover windows shell wrapper aliases

* fix: limit shell rewrite parsing set

* fix: recognize yash cmdline option

* fix: fail closed for opaque shell rewrites

* fix: recognize nushell execute mode

* fix: fail opaque shell allowlist matches closed

* fix: suppress opaque shell positional previews

* fix: parse nushell value options before commands

* fix: block opaque shell script fallbacks

* fix: keep nushell startup configs bound

* fix: preserve plus-option shell script binding

* fix: fail opaque shell fallback paths closed

* fix: reject shell inline flags in script fallback

* fix: block nushell startup option binding

* fix: fail opaque system run transports closed

* fix: deny hidden opaque shell approvals

* fix: keep startup shell payloads opaque

* fix: keep osh shell payloads opaque

* fix: use analysis result in allowlist test

* fix: parse nushell attached command flags

* fix: keep nushell attached parsing local
2026-07-24 15:03:58 +05:30
Vincent Koc b3e3f06584 fix(i18n): correct Indonesian seconds labels 2026-07-24 17:17:56 +08:00
github-actions[bot] 2a465debe8 chore(i18n): refresh native locales 2026-07-24 17:17:56 +08:00
Pavan Kumar Gondhi 7fc9a7c465 fix: block opaque exec dispatch wrappers (#112953) 2026-07-24 14:47:21 +05:30
Vincent Koc f5b3f2a89d fix(backup): validate canonical sqlite ownership (#113287) 2026-07-24 17:10:58 +08:00
Peter Steinberger b233faa057 refactor(tasks): split task registry internals (#113279)
* refactor(tasks): split task registry internals

* test(tasks): align registry ownership boundary
2026-07-24 02:09:04 -07:00
Vincent Koc 741ed2d6a8 fix(update): migrate config before plugin convergence (#113280) 2026-07-24 16:55:38 +08:00
Peter Steinberger 7584d9585b refactor(codex): consolidate app-server test fixtures (#113246)
* test(codex): consolidate app-server fixtures

* test(codex): align legacy heartbeat coverage
2026-07-24 01:54:55 -07:00
Pavan Kumar Gondhi 91ea4e03fa fix: redact additional GitLab token prefixes [AI] (#112954)
* fix: redact additional GitLab token prefixes

* fix: cover GitLab runner token variants

* test: construct GitLab redaction fixtures

* fix: consume full GitLab OAuth tokens

* fix: preserve long GitLab OAuth redaction

* fix: keep legacy OAuth token masking
2026-07-24 14:15:15 +05:30
Vincent Koc adf78cefbd refactor(daemon): centralize environment source lookup (#113283) 2026-07-24 16:45:03 +08:00
Vincent Koc e3c2a8be58 fix(i18n): drop concatenated runtime prefixes 2026-07-24 16:29:32 +08:00
Vincent Koc ac3eb02951 fix(android): avoid pluralized observation copy 2026-07-24 16:29:32 +08:00
Vincent Koc c67873e529 refactor(feishu): reuse hybrid account enablement (#113278) 2026-07-24 16:24:28 +08:00
Vincent Koc a18e8fbe0c refactor(tooling): centralize positive env integers (#113277) 2026-07-24 16:23:35 +08:00
Peter Steinberger 21f0cef5d5 refactor(matrix): split monitor handler pipeline (#113269)
* refactor(matrix): split monitor handler pipeline

* refactor(matrix): align extracted handler types

* refactor(matrix): make missing context explicit

* style(matrix): order extracted handler imports
2026-07-24 01:02:56 -07:00
Peter Steinberger 89122bf298 refactor(google-meet): consolidate plugin test fixtures (#113256)
* test(google-meet): consolidate plugin fixtures

* test(google-meet): keep fixture internals private
2026-07-24 01:02:39 -07:00
Peter Steinberger 73bba03e4c refactor: canonicalize session delivery state (#113225)
* refactor: canonicalize session delivery state

* test: canonicalize reply persistence fixtures

* test: canonicalize talk delivery fixtures

* test: canonicalize voice session routes

* test: canonicalize attachment delivery fixtures

* test: migrate gateway delivery fixtures

* fix: skip invalid session delivery rows

* test: align delivery SDK surface gates

* fix: preserve legacy delivery precedence

* test: canonicalize heartbeat delivery fixtures

* fix: preserve delivery route prompt identity

* test: canonicalize session delivery fixtures

* fix: preserve recoverable legacy delivery routes

* fix: canonicalize remaining session state

* fix: preserve canonical session classification

* style: format delivery state changes

* test: refresh plugin SDK delivery baseline

* test: avoid mutating session fixture input

* style: simplify delivery identity check

* style: simplify delivery origin spread

* fix: preserve fresh delivery route metadata

* test: assert canonical surface route switch

* fix: canonicalize doctor file-store imports

* fix: preserve transitional delivery migration state

* fix: satisfy canonical delivery CI gates

* ci: scope GitHub App token permissions

* test: infer canonical delivery projections

* test: canonicalize ACP requester delivery fixtures

* test: canonicalize harness rollback fixture

* style: apply pinned formatter
2026-07-24 01:01:19 -07:00
Vincent Koc d29b11300f refactor(gateway): centralize approval request delivery (#113268) 2026-07-24 15:58:56 +08:00
Peter Steinberger f3c4b120e2 fix(tooling): prevent silent test filters and local dependency reconciliation (#113236)
* fix(tooling): harden changed checks and test filters

* test(tooling): align temp report with helper lanes
2026-07-24 00:55:52 -07:00
Peter Steinberger 5e6a15b1bd test: consolidate outbound delivery fixtures (#113238) 2026-07-24 00:52:52 -07:00
Peter Steinberger d79537d651 refactor: drop obsolete async resolution opt-ins (#113234) 2026-07-24 00:51:20 -07:00
Peter Steinberger ce1db4e94e refactor(tasks): reduce task registry test duplication (#113239)
* test(tasks): consolidate task registry fixtures

* test(tasks): keep fixture helper behind boundary
2026-07-24 00:51:15 -07:00
Jason (Json) aee46707ba feat(plugins): support manifest-declared MCP Apps in native plugins (#113224)
* feat(plugins): load native manifest MCP servers

* fix(gateway): advertise proxied plugin surface ports

* fix(codex): retain MCP App transcript previews

* fix(codex): render native MCP apps inline

* fix(mcp-apps): resolve harness-native views by session

* fix(codex): normalize null MCP result metadata

* fix(ui): give inline MCP apps full message width

* test(codex): use generic native MCP App fixtures

* chore(plugin-sdk): refresh harness runtime baseline

* refactor(codex): isolate native MCP App contracts

* fix(codex): satisfy native app CI contracts

* fix(ci): scope automation app tokens

* chore(ci): defer token scopes to current main
2026-07-24 01:43:48 -06:00
Peter Steinberger 418b79f31a test(plugins): consolidate update fixtures (#113243) 2026-07-24 00:42:55 -07:00
Peter Steinberger aae10cade5 refactor(markdown): unify format profile declarations (#113254)
* refactor(markdown): unify format profile declarations

* test(markdown): avoid suppression inventory drift
2026-07-24 00:37:59 -07:00