Peter Steinberger
d124fb235f
refactor(meetings): share plugin entry registration ( #113007 )
2026-07-23 07:18:38 -04:00
Peter Steinberger
852548ce05
feat(onboard): stage migration imports before promotion ( #112798 )
...
* feat(onboard): stage migration imports before promotion
* fix(onboard): harden migration recovery
* fix(onboard): commit promoted config with CAS
* fix(onboard): resume setup after migration recovery
* test(onboard): split noninteractive migration coverage
* refactor(onboard): split migration promotion helpers
* fix(onboard): normalize migration preparation cleanup
* fix(onboard): preserve recovered inference ownership
* fix(codex): complete empty deferred plugin config
* fix(codex): reconcile deferred plugin config retries
* fix(onboard): resolve verification target after rebase
* refactor(onboard): trim retired migration exports
* test(onboard): assert read-only auth prompt store
2026-07-23 07:06:01 -04:00
Peter Steinberger
9ffebcadea
fix(telegram): preserve valid tg-time markup ( #112911 )
2026-07-23 07:00:00 -04:00
Peter Steinberger
7f550eaf50
fix(docs-i18n): escape model-added list markers
2026-07-23 06:54:27 -04:00
Peter Steinberger
9ae9fcb1cd
fix: preserve transcript cursors across session resets ( #112988 )
...
* feat: add reset transcript boundaries
* feat: project reset boundaries in history
* refactor: reset sessions in place
* fix: fence reset runtime caches by lifecycle
* fix: preserve reset filtering during compaction
* fix: anchor compaction after reset boundaries
* fix: budget reset preludes during compaction
* fix: honor reset visibility in bounded history
* fix: couple reset boundaries to lifecycle commits
* fix: commit reset boundaries atomically
* fix: preserve reset boundary transition states
* fix: preserve concurrent reset lifecycle owners
* fix: preserve reset boundary storage compatibility
* fix: preserve reset windows across persisted histories
* fix: fence legacy reset lifecycle state
* fix: keep stale appends behind reset boundaries
* perf: index reset descendants linearly
* fix: bound reset history projection reads
* fix: narrow invalid leaf control types
* test: use typed cron lifecycle revision
* style: keep acp lifecycle helper within limit
* style: satisfy reset boundary lint rules
* test: split reset concurrency coverage
* style: satisfy compaction fixture lint
* refactor: remove retired reset replay exports
* test: assert in-place reply session resets
* test: assert reset boundary persistence
* test: mock session boundary counts
2026-07-23 06:22:43 -04:00
Peter Steinberger
3b5226fde6
test(cli): consolidate update command fixtures ( #113003 )
...
* test(cli): consolidate update command fixtures
* test(cli): preserve stale resume fixture shape
2026-07-23 06:19:39 -04:00
Peter Steinberger
9a3a5ae818
refactor(markdown): formalize channel profiles ( #113002 )
2026-07-23 06:16:06 -04:00
Vincent Koc
061b94ad71
refactor(agents): reuse code mode JSON sanitizer ( #112999 )
2026-07-23 18:07:20 +08:00
Peter Steinberger
1e5096c519
refactor(ui): one job per sidebar zone — shell chrome controls, header presence, slim footer ( #112936 )
...
* refactor(ui): one job per sidebar zone — move search/collapse to shell chrome, presence to chat header, slim footer
* test(ui): point drawer-collapse e2e step at shell chrome nav toggle
* refactor(ui): unexport lobsterLookStyleVars after logo stand-in removal
* docs(web): describe shell chrome controls, slim footer, and header presence facepile
* fix(ui): keep cluster search on native-nav hosts; draft-aware collapsed new-thread
2026-07-23 05:54:39 -04:00
Peter Steinberger
b5232bc4dd
refactor(markdown): add capability-driven fallbacks ( #112985 )
...
* refactor(markdown): add capability-driven fallbacks
* fix(markdown): type task-list core rule state
* style(markdown): make list-prefix return explicit
* fix(markdown): honor label-only plain links
* fix(markdown): retain clipped list provenance
2026-07-23 05:47:48 -04:00
Vincent Koc
b190e5e3ea
docs(ci): distinguish queue bottlenecks ( #112997 )
2026-07-23 17:44:10 +08:00
Vincent Koc
392b3a5695
test(ios): refresh native i18n source lines
2026-07-23 17:43:10 +08:00
Vincent Koc
e0a692658e
test(ui): cover bundled CLI brand icons
2026-07-23 17:43:10 +08:00
Vincent Koc
84d149bf6f
fix(ui): use bundled model setup icons
2026-07-23 17:43:10 +08:00
Peter Steinberger
9f13f9b140
feat(openai): make million-token context an explicit opt-in ( #112916 )
...
* feat(openai): add safe long-context opt-in
* fix(ci): keep long-context checks within gates
* fix(ci): keep Codex usage helpers internal
2026-07-23 05:34:54 -04:00
Peter Steinberger
82ac110479
refactor(meetings): share runtime probes and node wrappers ( #112992 )
2026-07-23 05:28:46 -04:00
Peter Steinberger
05dd31ed73
test(gateway): consolidate reload handler fixtures ( #112993 )
2026-07-23 05:27:35 -04:00
Peter Steinberger
1781e2e8f7
test(discord): table-drive voice manager scenarios ( #112977 )
...
* test(discord): table-drive voice manager scenarios
* test(discord): classify voice fixtures as test support
2026-07-23 04:55:27 -04:00
Peter Steinberger
f466c3de32
refactor(ui): collapse sidebar inheritance tower ( #112969 )
2026-07-23 04:44:25 -04:00
Peter Steinberger
6522ce37d9
fix(release): unblock Telegram QA and Copilot media proof ( #112972 )
...
* fix(release): build Telegram candidate with private QA
* fix(copilot): preserve offloaded prompt images
2026-07-23 04:43:53 -04:00
Peter Steinberger
6bfdc9e474
refactor(meetings): share Teams and Zoom Chrome transport ( #112931 )
...
* refactor(meetings): share Chrome transport
* refactor(meetings): split platform adapter contract
* refactor(meetings): remove stale contract re-exports
* test(meetings): import adapter contract types
2026-07-23 04:27:48 -04:00
Jason (Json)
93c48a6adb
fix: steer active Codex tasks from the Control UI ( #112858 )
...
* fix(codex): enable transcript-backed active steering
* test(codex): keep persistent fixture tool policy
* test(codex): type mock tool capability
* test(codex): scope persistent policy fixtures
* chore: refresh PR CI base
* test(codex): stabilize persistent run fixtures
* test(codex): preserve lifecycle cached-search baseline
2026-07-23 01:59:50 -06:00
Peter Steinberger
9b050232a1
feat(tlon): render Markdown lists as native listings ( #112968 )
...
* feat(tlon): render markdown lists natively
* fix(tlon): preserve unsupported loose lists
2026-07-23 03:48:48 -04:00
Peter Steinberger
fb4338b03c
test(memory): clear embedding watchdog timers ( #112887 )
2026-07-23 03:43:09 -04:00
Peter Steinberger
19fb45d550
test(plugins): await lifecycle lease child result ( #112959 )
2026-07-23 03:28:36 -04:00
Peter Steinberger
a229456f48
feat(agents): relay Claude native tool requests as Gateway approvals ( #112918 )
...
* feat(agents): relay Claude native tool requests as Gateway approvals
* fix(agents): keep approval relay types local and refresh docs map
2026-07-23 03:21:08 -04:00
Peter Steinberger
6a90ad0573
refactor(ui): move sidebar menus into a reactive controller ( #112940 )
2026-07-23 03:15:20 -04:00
Peter Steinberger
f6818ae5ea
refactor(media): hydrate and prune images from structured facts, delete marker-text parsing ( #112913 )
...
* refactor(media): hydrate and prune images from structured facts, delete marker-text parsing
Embedded, CLI, host-context replay, and plugin-harness image hydration now
consume the persisted/runtime MediaFact carrier instead of parsing
OpenClaw-authored [media attached:]/[Image: source:] marker text. The
prompt-text attachment parser family (splitPromptAndAttachmentRefs, leading/
trailing marker extractors, ref-count consumption, text-based prune scrubbing)
is deleted; explicit user-authored paths and file URLs still hydrate.
- Described-image suppression is a declared MediaFact.hydrationSuppressed
field carried across copy/reprojection boundaries; the runtime symbol
plumbing is removed.
- Persisted facts plus mediaImageLayout are authoritative at every hydration
entry point; image blocks reconcile by structural fact index, never
byte/MIME equality.
- Offloaded attachments (image and non-image) persist their media://inbound
claim-check alias so ownership-aware history pruning can scrub markers
after persistence; factless pre-MediaFact rows keep narrow legacy redaction.
- History pruning removes facts, layout, and block provenance structurally
before replay.
Prompt bytes are golden-equal throughout; goldens from the fact-carrier PR
are untouched. 1,303 tests across 44 files; delegated check:changed green
(run 29980534186, pinned to the declared merge-base).
* fix(media): fail missing inline image slots
* test(agents): carry offloaded CLI retry image as a structured fact
The retry-image reliability test modeled an offloaded attachment with only
its [media attached:] marker text; offloaded attachments are carried as
structured media facts and marker text is presentation-only, never parsed
for hydration.
2026-07-23 03:11:16 -04:00
Peter Steinberger
b9a28cde42
test(cron): clean shared env and temp state ( #112922 )
2026-07-23 03:08:53 -04:00
Peter Steinberger
6ef77d7c7e
refactor: expire July 24 plugin compat records ( #112944 )
2026-07-23 03:04:34 -04:00
Jason (Json)
307b3060a9
fix: hide memory maintenance turns from chat ( #112942 )
...
* fix: hide memory maintenance turns from chat
* chore: update plugin SDK API baseline
* chore: account for harness visibility export
2026-07-23 01:02:27 -06:00
Peter Steinberger
bac2bbd243
refactor(google-meet): split CLI modules ( #112937 )
...
* refactor(google-meet): split CLI modules
* test(google-meet): align CLI split routing
* refactor(google-meet): isolate CLI command contract
2026-07-23 03:00:34 -04:00
Peter Steinberger
cca67fc842
fix(meetings): verify talk-back loopback signal ( #112939 )
...
* fix(meetings): verify talk-back loopback signal
* refactor(meetings): keep verification helper private
* fix(meetings): type loopback buffers generically
* fix(meetings): bound loopback reference buffers
* fix(meetings): align loopback proof with playback
* chore(meetings): defer release note ownership
* fix(meetings): keep loopback health type private
2026-07-23 02:32:24 -04:00
Peter Steinberger
d893f79ccc
fix(matrix): preserve encryption keys across snapshot upgrades ( #112919 )
...
* fix(matrix): migrate legacy crypto snapshots via doctor
* fix(matrix): harden snapshot migration failures
* fix(matrix): preserve unreadable crypto snapshots
* test(matrix): consolidate crypto snapshot coverage
2026-07-23 02:25:52 -04:00
Peter Steinberger
e76c9aac30
fix(release): allow isolated Telegram private QA ( #112935 )
...
* fix(release): forward private QA flags to Telegram SUT
* test(ui): update catalog activity state owner
2026-07-23 02:17:48 -04:00
Peter Steinberger
282ddaf96b
refactor(line): preserve formatting in flex messages ( #112921 )
2026-07-23 02:17:35 -04:00
Peter Steinberger
b67217ffab
fix(channels): stop leaking markdown on plain-text transports ( #112926 )
...
* fix(channels): unify plain-text markdown projection
* fix(synology-chat): satisfy link formatter lint
* test(ui): repair sidebar catalog activity fixture
2026-07-23 02:13:55 -04:00
Peter Steinberger
07f671724c
test(ui): wire catalog project activity case through sessionData catalogs
2026-07-22 23:03:16 -07:00
RileyJJY
4ff11a84e4
fix(ollama): release reader lock when parseNdjsonStream exits early ( #111641 )
...
* fix(ollama): release reader lock when parseNdjsonStream exits early
* test(ollama): prove real stream lock cleanup
Co-authored-by: RileyJJY <0668000974@xydigit.com >
* style(ollama): format stream cleanup tests
Co-authored-by: RileyJJY <0668000974@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-23 02:03:04 -04:00
Peter Steinberger
9be7863881
test(agents): consolidate live model switch fixtures ( #112891 )
2026-07-23 01:58:25 -04:00
Peter Steinberger
d9c9dcf71e
test(ui): update sidebar-customization e2e to current nav defaults (custodian in settings, advanced-tier search, plugin tabs in sidebar)
2026-07-22 22:56:27 -07:00
Peter Steinberger
a12fba422c
test(active-memory): consolidate recall fixtures ( #112881 )
2026-07-23 01:50:37 -04:00
Peter Steinberger
6c49cae2bc
test(feishu): consolidate bot fixtures ( #112884 )
2026-07-23 01:49:49 -04:00
Peter Steinberger
68046b2011
test(gateway): consolidate agent event fixtures ( #112878 )
2026-07-23 01:47:11 -04:00
Peter Steinberger
7381924c44
fix(cloud-workers): re-adopt healthy workers after gateway restart ( #112928 )
2026-07-23 01:45:17 -04:00
Jason (Json)
6504cf85f2
fix(ui): restore project hierarchy and session activity ( #112924 )
...
* fix(ui): restore catalog project type hierarchy
* feat(ui): show catalog session activity
* chore(ui): update startup budget baseline
* test(ui): isolate catalog activity coverage
2026-07-22 23:43:46 -06:00
Peter Steinberger
9735945083
refactor(markdown): share attributed range rendering ( #112907 )
2026-07-23 01:41:56 -04:00
Peter Steinberger
5678c74e4d
fix(ui): keep system agents out of page scopes ( #112889 )
...
* fix(ui): exclude system agents from page scopes
* perf(ui): keep scope filtering within startup budget
2026-07-23 01:38:11 -04:00
Peter Steinberger
b74f04ada8
refactor(ui): move sidebar mutations and groups into one organizer controller ( #112923 )
...
* refactor(ui): move sidebar mutations and groups into controllers
* refactor(ui): lazy-load session organizer operations
* fix(ui): order organizer mutation scope before options
2026-07-23 01:37:18 -04:00
Peter Steinberger
5cc1e6be62
test(memory): consolidate qmd manager fixtures ( #112885 )
2026-07-23 01:33:58 -04:00