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