Ayaan Zaidi
ec4ae78b75
fix(agents): generate session titles with runtime-owned auth ( #122163 )
...
Use the selected harness for isolated title generation, including native Codex auth.
Retry failed dashboard titles from the first user message without overriding manual names.
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-08-12 09:42:16 +05:30
Peter Steinberger
964c8c84c1
refactor: consolidate coercion ownership ( #122299 )
...
* refactor: consolidate coercion ownership
Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.
The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.
* fix: guard integer option ownership
Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.
* fix: keep integer helpers on numeric facade
Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.
* fix: point numeric coercion to number runtime
Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
Josh Avant
73a9eed95b
refactor(audit): add canonical admitted-run context ( #120534 )
...
* feat(audit): carry canonical admitted execution context
* fix(agents): preserve admitted context across retries
* fix(worker): fence legacy launch dialect
* test(gateway): track approval temp dirs
* fix(plugin-sdk): preserve harness attempt compatibility
* fix: close delegated run authority at owner boundaries
* fix: internalize delegated authority validators
* refactor: split delegated authority proof surfaces
* refactor: centralize command admission identity
* test: claim runtime tool authority
* fix(gateway): keep lifecycle cleanup within static budgets
* fix(agents): revalidate harness policy authority
* fix(agents): fence awaited approval capability results
* test(copilot): supply required harness capability fixtures
* fix(agent): preserve scoped embedded run admission
* fix(agent): preserve keyless and worker authority
* test(agent): bind incomplete-turn authority
* docs: preserve execution authority invariants
* chore(plugin-sdk): regenerate API baseline
* fix(gateway): notify pending claim closure
* fix(gateway): revalidate delegated tool authority
* fix(plugin-sdk): keep source guard internal
* fix: close delegated authority races
* fix: revalidate delegated side effects
* fix: close harness authority projection gaps
* fix: align authority integration types
* fix: isolate settled harness finalization
* fix: fence recovery identity finalization
* fix: preserve committed session worktrees
* fix: preserve worker placement agent identity
* fix: fence active harness tool work
* fix(plugins): restore embedded run admission owner
* chore(plugin-sdk): compose integrated surface budgets
* fix(copilot): keep finalization attempt type internal
* fix(plugins): complete admission owner type imports
* test(harness): use settled finalization attempt shape
* fix(security): retain exact side-run and approval authority
* fix(security): preserve protected authority through terminal sweep
* fix(agents): follow moved recovery store owner
* fix(ci): align integrated authority owners with gates
* fix(plugins): distinguish embedded agent adapter export
* chore(plugin-sdk): regenerate API baseline after rolling integration
* refactor(gateway): keep session authority within owner budgets
* fix(gateway): keep session helpers private
* docs(plugin-sdk): name the V2 parameter subpath
* chore(integration): reconcile worker and SDK surfaces
* docs(plugin-sdk): require the V2 host API floor
* chore(plugin-sdk): regenerate after proxy-auth integration
2026-08-10 23:15:20 -05:00
Ayaan Zaidi
409fb7abca
fix(telegram): enforce direct-message tool policies
...
Enforce configured Telegram direct-message tool policies across queued runs and native harnesses. Unsupported restricted harnesses now refuse visibly; turns without explicit policy keep existing tool access.
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-08-09 19:32:30 +05:30
joshavant
bc197e1b66
Revert "fix(plugins): inject harness tool authority"
...
This reverts commit 228478bffe .
2026-08-07 18:40:17 -05:00
Vincent Koc
228478bffe
fix(plugins): inject harness tool authority
2026-08-07 15:07:12 +08:00
Josh Avant
ce67ffb70e
feat(agents): add tool-free isolated completion ( #114343 )
...
* feat: add isolated pure-inference completion
* fix(google): block ambient system prompt writes
* docs: refresh generated map
2026-07-30 13:24:45 -05:00
Peter Steinberger
3dc3370d9e
fix(copilot): keep tool transcript groups structurally complete ( #114403 )
...
* refactor(copilot): make SQLite own transcripts
* fix(copilot): harden transcript event projection
* test(copilot): tighten transcript journal types
* fix(copilot): retain unmatched usage metadata
* refactor(copilot): commit tool groups atomically
* fix(copilot): break journal bridge import cycle
* fix(copilot): preserve grouped transcript replay
* test(copilot): cover opaque replay state
* fix(copilot): invalidate lossy transcript replay
* fix(copilot): guard transcript rewrite topology
* fix(copilot): drain transcript finalization
* fix(copilot): preserve resumed session history
* fix(copilot): dedupe replayed transcript snapshots
* fix(copilot): isolate transcript write hooks
* fix(copilot): track staged transcript identities
* fix(copilot): isolate ephemeral transcript events
* fix(copilot): coalesce assistant snapshots
* fix(copilot): invalidate unprojected SDK context
* fix(copilot): guard resumed transcript replay
* fix(plugin-sdk): expose strict transcript append
* fix(copilot): persist journal provenance safely
* fix(copilot): separate live and durable deltas
* fix(copilot): require durable projection ownership
* fix(copilot): preserve strict append typing
* fix(copilot): gate deferred session deletion
* fix(copilot): preserve transcript replay identity
* fix(copilot): retain cited replay history
* fix(copilot): require complete replay provenance
* fix(copilot): reject ambiguous assistant snapshots
* fix(copilot): return latest assistant snapshot
* chore(copilot): align transcript lint gates
* test(lint): cover Copilot line budgets
* test(ci): dedupe Codex prewarm shard
2026-07-27 15:42:00 -04:00
joshavant
6eea20ce18
fix(agents): finalize settled tool turns safely
2026-07-22 06:04:27 -05:00
joshavant
7c2829c0e0
fix(copilot): isolate settled turn finalization
2026-07-22 06:04:27 -05:00
Peter Steinberger
40b10eb3d1
perf: avoid plugin cold loads in request hot paths ( #109348 )
...
* perf: avoid cold plugin discovery in hot paths
* chore: remove stale harness policy re-export
* fix: preserve active thinking clamps in status
2026-07-16 14:54:32 -07:00
Peter Steinberger
d4183facf1
refactor(deadcode): tighten extension root modeling ( #108538 )
2026-07-15 18:18:23 -07:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Vincent Koc
cc085da581
refactor(copilot): localize internal runtime types ( #101379 )
2026-07-06 22:33:59 -07:00
Vincent Koc
bfffc77bfc
feat(copilot): add BYOK provider parity
2026-06-24 18:29:56 +08:00
Vincent Koc
8a8c6b2a27
fix(copilot): preserve compaction metadata
2026-06-23 17:11:24 +08:00
Vincent Koc
d7f747af3b
fix(harness): satisfy lifecycle lint gates
2026-06-21 07:00:11 +08:00
Vincent Koc
54dddda68d
fix(copilot): preserve replacement session reuse
2026-06-21 07:00:11 +08:00
Vincent Koc
3968fea383
fix(harness): protect reset and prompt bounds
2026-06-21 07:00:11 +08:00
Vincent Koc
0d25928fa4
fix(copilot): scope pending cleanup to session owner
2026-06-21 07:00:11 +08:00
Vincent Koc
807641548b
fix(copilot): retain replacement session during reset
2026-06-21 07:00:11 +08:00
Vincent Koc
faa4f5a23b
fix(copilot): ignore stale compaction cleanup
2026-06-21 07:00:11 +08:00
Vincent Koc
a81a505c72
fix(copilot): defer background compaction cleanup
2026-06-21 07:00:11 +08:00
Vincent Koc
ece7d0945c
fix(copilot): cancel deferred compaction on abort
2026-06-21 07:00:11 +08:00
Vincent Koc
979238dbb3
fix(copilot): retain completed compaction sessions
2026-06-21 07:00:11 +08:00
Vincent Koc
ab165d119c
fix(copilot): retain timed-out compaction hooks
2026-06-21 07:00:11 +08:00
Vincent Koc
7c2fb845db
fix(harness): cover manual lifecycle hooks
2026-06-21 07:00:11 +08:00
Peter Steinberger
96e5812426
docs: document medium extension sources
2026-06-04 21:33:54 -04:00
Peter Steinberger
db4990d260
refactor: compact copilot sessions through sdk state
...
Route Copilot compaction through SDK-backed state, remove marker sidecars, preserve auth/session binding behavior in SQLite-backed plugin state, and route Copilot CLI budget compaction through native harness compaction.
2026-06-01 01:18:46 -04:00
Peter Steinberger
ece92bcbde
fix: persist Copilot SDK session bindings
...
Persist GitHub Copilot SDK session ids in the plugin-state SQLite store so separate OpenClaw process turns can resume the same Copilot-side session when the compatibility fingerprint still matches.
The fingerprint covers provider/model/cwd, resolved agent id, resolved Copilot home, and auth identity. Plugin-state lookup/register/delete failures are non-fatal, stale rows are invalidated, and reset delete failures use an in-process tombstone so reset does not accidentally reuse a durable binding.
Also routes the QQBot token POST through the plugin SDK SSRF guard with capture disabled for the secret-bearing request, preserving the current token lifetime validation from main.
Verification: focused Copilot and QQBot Vitest suites, raw channel fetch guard, autoreview clean, Blacksmith Testbox pnpm check:changed tbx_01kst9fwjmsfzwaxqatszcbf40, live local Copilot two-turn smoke with the same SDK session id persisted in SQLite.
Refs #88064
2026-05-29 18:46:03 +02:00
Ramrajprabu
f3cfd752d3
feat(copilot): add GitHub Copilot agent runtime
...
Adds the opt-in bundled GitHub Copilot agent runtime, pinned SDK install path, docs/inventory, SDK/tool/sandbox/auth wiring, and replay/tool-safety fixes.
Verification:
- Local: git diff --check; fnm exec --using 24.15.0 pnpm tsgo:extensions; fnm exec --using 24.15.0 pnpm check:test-types; fnm exec --using 24.15.0 pnpm build.
- Autoreview local: clean for the replay-safety fix; branch autoreview engine returned empty output twice, so local autoreview plus local/Crabbox/CI proof was used.
- Crabbox focused Copilot: run_2c0db9f48a4a, 19 files / 485 tests passed.
- Crabbox additional boundary shard: run_26a246a1aa24, prompt snapshots and plugin SDK boundary/export checks passed.
- Crabbox live Copilot: run_d128e4048b4e, real gpt-4.1 turn with live_echo phase-1-green and clean session-file check.
- GitHub checks: green on head 7cc8657e0d , including Dependency Guard after exact-head approval.
Co-authored-by: Ramraj Balasubramanian <ramrajba@microsoft.com >
2026-05-29 05:15:22 +01:00