Peter Steinberger
2a57e1a1af
fix(github-copilot): preserve cumulative poll backoff ( #103434 )
2026-08-09 04:50:18 -07:00
Peter Steinberger
e1ec95dcbf
refactor(auth): dedupe profile upserts and approval resolvers ( #120831 )
...
* refactor(auth): dedupe profile upserts and approval resolvers
* test(auth): mock canonical locked upsert
* test(auth): mock locked upsert during onboarding
2026-08-08 21:14:16 -07:00
Peter Steinberger
10c7f005be
refactor(github-copilot): narrow runtime facade ( #120544 )
...
* refactor(github-copilot): narrow runtime facade
* style(github-copilot): format runtime exports
2026-08-08 02:56:12 -07:00
Peter Steinberger
48639663b0
chore(release): prepare 2026.8.1 ( #120375 )
2026-08-07 18:44:12 -07:00
Peter Steinberger
bc0c3fcd63
refactor(providers): shared generated-media download guard and binary-response adoption ( #120351 )
...
* fix(agents): cancel rejected provider binary bodies
* refactor(providers): share generated media downloads
* refactor(providers): adopt payload patch stream wrapper
* fix(providers): preserve generated media helper contracts
2026-08-07 15:45:53 -07:00
Peter Steinberger
c28b524f38
refactor(auth): move Copilot OAuth ownership to plugin ( #118063 )
...
* refactor(auth): move Copilot OAuth ownership to plugin
* test(auth): cover plugin-owned Copilot OAuth
* test(auth): align OAuth runtime mocks
* refactor(auth): extract session OAuth adapter
* refactor(auth): centralize session OAuth dispatch
* test(auth): type OAuth refresh mock
* chore(plugin-sdk): regenerate API baseline for provider oauth dispatch
2026-08-02 10:59:28 -07:00
juyaohuidt
096cd231ea
fix(github-copilot): cancel unread device-flow error bodies before throwing ( #112268 )
...
* fix(github-copilot): cancel unread device-flow error bodies before throwing
postGitHubDeviceFlowForm now drops the unread response stream before it
raises on a non-OK HTTP status. GitHub OAuth error responses ship a JSON
body (`{error, error_description}`) that this helper never consumes, so
the underlying fetch connection previously stayed open holding the
payload until the caller's release() ran, keeping the device-flow socket
half-drained on every 4xx/5xx.
Mirrors the recently-merged qqbot/kilocode/tlon fixes for the same
'cancel body before throwing' pattern (#110008 , #109950 , #112059 ).
* style(github-copilot): clarify response release ordering
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-02 04:46:50 -07:00
Peter Steinberger
de6bd7d1bc
fix(copilot): prevent invalid Claude tool IDs from causing retries ( #117789 )
...
* fix(copilot): normalize Claude tool IDs before requests
* fix(copilot): preserve typed payload and stream contracts
* fix(copilot): preserve unique paired Anthropic tool IDs
2026-08-01 22:59:12 -07:00
Peter Steinberger
568ea29d2e
refactor(plugins): inherit shared package boundary settings ( #117474 )
2026-08-01 09:11:09 -07:00
joshavant
23dbee9e38
fix(github-copilot): honor live model selection in guided setup
2026-07-30 21:15:10 -05:00
joshavant
94542eb872
fix(github-copilot): select available onboarding model
2026-07-30 21:15:10 -05:00
Peter Steinberger
99ec30b44b
feat(plugins): catch code-mode drift between catalogs shipping the same model ( #115183 )
...
* feat(plugins): catch code-mode drift between catalogs sharing one model
Adds a contract test that groups bundled catalog rows by shared upstream
model and requires every row in a group to declare compat.codeMode once any
sibling does. Rows sharing a model id group automatically; rows under
different ids opt in with the new manifest-only `upstreamModel` marker.
Moves the kimi catalog into its manifest so the scan can see it, and records
the tier reseller catalogs were silently missing as explicit "capable".
* docs: regenerate docs map for the shared-model code-mode section
2026-07-28 08:52:21 -04:00
joshavant
a706d49cdb
refactor(github-copilot): own runtime request identity
2026-07-27 22:40:32 -05:00
joshavant
3da4ef3a6c
fix(github-copilot): format legacy oauth credentials
2026-07-27 22:40:32 -05:00
joshavant
fbd6b842f9
fix(github-copilot): authenticate fine-grained tokens
2026-07-27 22:40:32 -05:00
Leon-SK668
a90bef3970
fix(usage): guard malformed Copilot payloads ( #110795 )
...
Co-authored-by: Leon-SK668 <17695126+Leon-SK668@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-27 21:55:15 -04:00
Peter Steinberger
caa01f4f5b
refactor(providers): table-driven forward compat and manifest-derived contract tests ( #113940 )
...
* refactor(providers): share family forward compat resolution
* test(providers): derive runtime contracts from manifests
* test(providers): validate manifest fixture inputs
* refactor(zai): narrow forward compat inputs
2026-07-25 18:09:37 -07:00
Peter Steinberger
f703d803cc
chore(models): curate all provider model catalogs to current-generation lineups ( #113681 )
...
* chore(models): fleet-wide provider catalog curation
* fix(models): sync provider runtime catalogs and tests with curated manifests
* test(models): align venice lifecycle assertions and copilot auth default with curated catalogs
* test(models): align catalog lifecycle contract checks
2026-07-25 07:21:17 -07:00
Peter Steinberger
acd92f6a3d
chore(deps): refresh repository dependencies ( #112453 )
...
* build(deps): update QA broker dependency
* build(deps): refresh repository dependencies
* build(deps): reconcile rebased shrinkwraps
* test(plugins): remove stale loader test state
* test(deps): stabilize updated dependency coverage
* fix(swift): use caller-isolated TaskLocal overload
* build(deps): regenerate rebased shrinkwraps
* test(msteams): preserve DNS validation in fetch helper
* fix(deps): avoid vulnerable optional image stack
* test(deps): validate generated LRU override
* refactor(ui): extract chat resizable divider
* test(ui): update divider ownership path
* fix(matrix): retain restart-compatible SDK
* style(cron): format update test
2026-07-23 16:17:13 +00:00
Peter Steinberger
edecdbd05e
refactor(config): config-surface reduction tranche 3 — product consolidations (review request) ( #111527 )
...
* refactor(config): consolidate media model lists
* refactor(config): unify memory configuration
* refactor(config): consolidate TTS ownership
* refactor(config): move typing policy to agents
* refactor(config): retire product-level config surfaces
* refactor(config): share scoped tool policy type
* chore(config): refresh generated baselines
* fix(config): honor agent typing overrides
* fix(config): migrate sibling config consumers
* refactor(infra): keep base64url decoder private
* fix(config): strip invalid legacy TTS values
* chore(config): refresh rebased baseline hash
* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move
* refactor(config): polish final layout names
* refactor(config): freeze retired tuning defaults
* feat(config): add fast mode default symmetry
* refactor(config): key agent entries by id
* docs(config): update final layout reference
* test(config): cover final layout migrations
* chore(config): refresh final layout baselines
* fix(config): align final layout runtime readers
* fix(config): align remaining readers
* fix(config): stabilize final layout migrations
* fix(config): finalize config projection proof
* fix(config): address final layout review
* docs(release): preserve historical config names
* fix(config): complete keyed agent migration
* fix(config): close final migration gaps
* fix(config): finish full-branch review
* fix(config): complete runtime secret detection
* fix(config): close final review findings
* fix(config): finish canonical docs and heartbeat migration
* fix(config): integrate latest main after rebase
* refactor(env): isolate test-only controls
* refactor(env): isolate build and development controls
* refactor(env): collapse process identity indirection
* refactor(env): remove duplicate config and temp aliases
* docs(env): define the operator-facing allowlist
* ci(env): ratchet production variable count
* fix(env): remove stale provider helper import
* fix(env): make ratchet sorting explicit
* test(env): keep test seam in dead-code audit
* test(env): cover ratchet growth and boundary; document surface budgets
* docs(config): document tier-eval consolidations
* docs(config): clarify speech preference ownership
* test(memory): align retired tuning fixtures
* refactor(memory): freeze engine heuristics
* refactor(config): apply tier-eval tranche
* refactor(tts): move persona shaping to providers
* refactor(compaction): move prompt policy to providers
* test(config): align hookified prompt fixtures
* chore(deadcode): classify test-only exports
* chore(github): remove unused spawn helper
* chore(deadcode): classify queue diagnostics
* chore(deadcode): remove unused lane snapshot export
* chore(plugin-sdk): ratchet consolidated surface
* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
ZOOWH
b16c6c75ce
fix(github-copilot): redact embedding API errors ( #109177 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-21 08:16:02 -07:00
Dallin Romney
c3c665f7f6
fix: make Copilot token exchange 403 errors actionable ( #112025 )
...
* fix: explain GitHub Copilot 403 recovery
* fix: keep control UI log hint internal
* fix: clarify log viewing hint
2026-07-21 17:11:25 +09:00
Chunyue Wang
752f059753
fix(github-copilot): strip encrypted_content from reasoning replay items ( #95493 )
...
* fix(github-copilot): strip encrypted_content from reasoning replay items
* refactor(github-copilot): name replay sanitizer accurately
Use one provider-boundary sanitizer name for both connection-bound IDs and session-bound encrypted reasoning, and assert the final stream payload drops ciphertext.\n\nCo-authored-by: openperf <16864032@qq.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 22:31:39 -07:00
Peter Steinberger
4ef4323db9
fix: keep memory SecretRef failures agent-scoped ( #109977 )
...
* test: normalize Copilot token fixture
* test: normalize Copilot auth fixtures
* test: use explicit Copilot placeholders
* test: use neutral Copilot fixture host
* refactor: clarify Copilot embedding auth values
* refactor: keep Copilot profile result intact
* test: normalize embedding credential fixtures
* fix: isolate memory SecretRef owners
* refactor: isolate memory secret collection
2026-07-17 14:44:03 +01:00
Peter Steinberger
662e79d574
test(release): harden extension prerelease contracts
2026-07-17 13:43:12 +01:00
Peter Steinberger
e693d279b3
fix: Bedrock ARN region routing, Copilot device-flow pacing, TUI input fixes ( #109740 )
...
* build(deps): bump terminal UI library to 0.80.9
* fix(plugins): Bedrock ARN region routing, stop-reason detail, and Copilot device-flow pacing
2026-07-17 01:09:29 -07:00
Wynne668
f63ea72f28
fix(github-copilot): prevent failed usage checks from holding connections ( #109540 )
...
* fix(github-copilot): release failed usage responses
* test(github-copilot): preserve usage HTTP errors
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 22:09:53 -07:00
xingzhou
2b4b688581
fix(github-copilot): release failed catalog responses ( #109071 )
2026-07-16 17:07:24 -07:00
Peter Steinberger
349f78776d
fix(models): refresh bundled provider catalogs ( #109410 )
...
* fix(models): refresh bundled provider catalogs
* docs(models): refresh generated docs map
* fix(xiaomi): keep provider helper private
* chore(release): defer catalog release note
2026-07-16 16:47:25 -07:00
xingzhou
5a494acd64
fix(agents): tool calls lose arguments when Responses item IDs rotate ( #108630 )
...
* fix(agents): tool calls lose arguments when Responses item IDs rotate
* test(github-copilot): prove rotating tool item IDs
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 23:58:34 -07:00
Peter Steinberger
e7cba0e4d5
fix: provider dead exports no longer block changed checks ( #108592 )
...
* fix(ci): clean provider dead exports
* test(extensions): satisfy provider contract types
* refactor(openai): tighten provider runtime factory
2026-07-15 22:33:54 -07:00
Peter Steinberger
46fad5296a
refactor(github-copilot): own runtime auth in provider ( #108096 )
2026-07-15 00:19:44 -07:00
Peter Steinberger
c51bb5ed20
test(github-copilot): align token endpoint fixtures ( #108047 )
...
* test(github-copilot): align token endpoint fixtures
* docs: refresh generated docs map
2026-07-14 23:25:49 -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
Galin Iliev
93bad8de2a
fix: restore GitHub Copilot turns and account context limits ( #106198 )
...
* fix: restore GitHub Copilot runtime routing
Refs #106170
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 6053811e-f081-436b-8741-54c5cab6c016
* fix: bind Copilot metadata to resolved credentials
Refs #106170
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 6053811e-f081-436b-8741-54c5cab6c016
* refactor: split Copilot runtime helpers
* fix: satisfy Copilot runtime static gates
* fix: satisfy Copilot runtime lint
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Co-authored-by: Galin Iliev <galin.iliev@microsoft.com >
2026-07-13 16:04:34 -07:00
NIO
92db88e36b
fix(github-copilot): bound Copilot token exchange fetch timeout ( #104488 )
...
* fix(github-copilot): bound Copilot token exchange fetch timeout
* fix(github-copilot): harden token exchange deadline
Co-authored-by: hugenshen <hu.genshen@xydigit.com >
* chore: remove release-owned changelog entry
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 15:24:39 +01:00
Peter Steinberger
81941f2d68
test: enable noUncheckedIndexedAccess for extension tests ( #105343 )
2026-07-12 12:48:22 +01:00
Peter Steinberger
218dcd815a
feat(tooling): enforce noUncheckedIndexedAccess in the extensions lane (NUIA phase 4) ( #105132 )
...
* fix(extensions): make indexed access explicit across channel plugins
Transport-payload-safe burn-down: malformed Telegram/Discord/QQ/LINE
and sibling channel input keeps existing skip paths; no synthesized
fields, no new throws in delivery loops. Zalo escape sentinels preserve
literal matches instead of undefined replacements.
* fix(extensions): make indexed access explicit across provider and memory plugins
Stream and model iteration, tool-block guards, capture guards, and
sparse accumulators; singleton model reads carry named invariants.
* fix(extensions): make indexed access explicit across tooling plugins, flip the extensions lane
Remaining plugins (oc-path, qa-lab, browser, logbook, and siblings) plus
the tsconfig.extensions.json flag flip. Cleanup: logbook sampleFrames
NaN index at max=1, QA retry clamp at non-positive attempts, dead Canvas
probe and OpenShell no-op slice removed, twitch test setup leak excluded
from the prod lane.
* refactor(plugin-sdk): expose expectDefined via a focused SDK subpath
Extensions imported @openclaw/normalization-core directly, crossing the
external-plugin packaging boundary (it only worked because the runtime
builder bundles undeclared workspace helpers). expect-runtime joins the
canonical entrypoints JSON, generated exports, API baseline, docs, and
subpath contract test; all 78 extension imports now use the SDK seam.
Two scanner-shaped locals renamed for review-bundle hygiene.
* chore(plugin-sdk): raise surface budgets for the expect-runtime subpath
One new entrypoint with one callable export, added intentionally as the
packaging-honest seam for extension invariant helpers.
2026-07-12 09:17:31 +01:00
Peter Steinberger
8310c565e0
feat(onboarding): add provider sign-in ( #104502 )
...
* feat(onboarding): add provider sign-in flows
* fix(oauth): keep callback compatibility
* fix(onboarding): reconcile lost auth outcomes
* fix(onboarding): lock auth cancellation at commit
* fix(onboarding): close provider auth lifecycle gaps
* fix(onboarding): make terminal auth failures dismissable
* fix(onboarding): satisfy native app checks
* fix(onboarding): reconcile absent auth sessions
* fix(onboarding): bound provider auth sessions
* fix(onboarding): open provider auth links safely
* test(onboarding): use scanner-safe auth fixtures
* revert: keep established onboarding auth fixtures
* fix(onboarding): close provider auth cancellation gaps
* fix(gateway): retain uncollected wizard results
* fix(onboarding): bind provider reconciliation attempt
* fix(i18n): avoid guessing moved string identities
* style(onboarding): normalize remote auth choices efficiently
* fix(protocol): refresh optional provider auth choices
* test(gateway): cover provider auth dispatch order
* refactor(macos): split onboarding setup support
* fix(macos): refresh merged native checks
2026-07-11 13:00:17 -07:00
Peter Steinberger
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
saju01
f0534c5b71
fix(github-copilot): honor live prompt token limits ( #103275 )
...
* fix(github-copilot): honor live prompt token limits
* fix(github-copilot): align prompt token budgets
* fix(github-copilot): align prompt token budgets
---------
Co-authored-by: saju01 <saju@coderedcorp.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-10 06:27:14 +01:00
mikasa
1e3dea750b
fix(github-copilot): bound device flow requests ( #103255 )
...
* fix(github-copilot): bound device flow requests
* docs(changelog): note Copilot login timeout
* fix(github-copilot): bound device flow requests
* fix(github-copilot): bound device flow requests
* fix(github-copilot): bound device flow requests
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-10 06:19:51 +01:00
Tobias Oort
0307deacfa
feat(github-copilot): support GitHub Enterprise data-residency Copilot auth ( #99221 )
...
Adds GitHub Enterprise data-residency support to the existing bundled GitHub Copilot provider.
Maintainer proof:
- GitHub CI green on head 54010a6538
- `check-lint`, `check-additional-extension-bundled`, and `check-shrinkwrap` passed in CI
- local `pnpm lint:extensions:bundled`, `pnpm lint`, and focused GitHub Copilot Vitest passed
- AWS Crabbox proof passed
- live microsoft.ghe.com device-flow/token-exchange/model-catalog proof passed
Co-authored-by: Tobias Oort <tobias.oort@ict.nl >
Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com >
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-07-08 18:59:41 -07:00
Vincent Koc
4a9fe264e6
test(github-copilot): use real token exchange response
2026-07-07 08:07:43 +02:00
Vincent Koc
b662209488
refactor(github-copilot): localize internal helpers ( #101393 )
2026-07-06 22:58:46 -07:00
Peter Steinberger
80537c1ba4
feat(macos): load provider catalog during AI onboarding ( #101132 )
...
* feat(macos): load onboarding providers from gateway
* test(crestodian): widen setup config mock
* fix(crestodian): satisfy onboarding lint gate
* chore(macos): refresh onboarding localization inventory
* test(plugins): cover guided Copilot secret metadata
2026-07-06 20:57:56 +01:00
Peter Steinberger
07e2d633cc
feat: show auto-detected provider plans and billing ( #100520 )
...
* feat(providers): auto-discover usage billing
* feat(ui): show provider plans and billing
* fix(ui): translate provider billing labels
2026-07-06 04:53:09 +01:00
Peter Steinberger
614e87cce1
chore: update dependencies ( #100027 )
2026-07-04 14:56:50 -04:00
Vincent Koc
66e676d29b
chore(release): close out 2026.6.11 on main
2026-06-30 11:31:08 -07:00
saju01
78b03fb415
test(github-copilot): cover live xhigh reasoning for non-Claude models ( #91728 )
...
Regression coverage for #59416 : when live /models metadata wins over the
static xhigh allowlist, non-Claude mini-family ids (e.g. gpt-5.4-mini)
must gain xhigh from their resolved compat, while ids whose live effort
list lacks xhigh (e.g. gpt-5-mini) must not over-grant it.
The live-first model catalog union and models-defaults removal are
already in origin/main (75405f64d0 , 46c42d4a0d , d2279591bf ); this PR now
contributes only the still-missing regression tests on top of that base.
Co-authored-by: saju01 <saju@coderedcorp.com >
2026-06-28 23:34:28 -07:00