Commit Graph

15961 Commits

Author SHA1 Message Date
Peter Steinberger 70dbbf3bcd fix(msteams): rename shadowed close callback in lifecycle test
ee472357cb added an app.listen callback param that the inner
server.close callback shadowed, failing oxlint no-shadow on main.
2026-07-14 03:17:59 -07:00
Ayaan Zaidi 42bd094c12 chore(telegram): keep test-only spool constants module-local
The retention bound, claim lease default, and liveness options type were
exported only for tests, which fails the dead-export gate. Tests pin the
policy literals locally instead.

Refs #107246
2026-07-14 15:40:29 +05:30
Ayaan Zaidi c130ceb5e1 fix(telegram): accept delayed cross-lane spool replays exactly once
Telegram update ids are global across chats, but the update tracker rejected
any id at or below its single high-water mark. When one lane was delayed
while other lanes completed newer ids, the delayed durable-spool replay was
rejected as accepted-watermark and tombstoned without dispatch - silent
message loss. The tracker now rejects only restored-offset ids and exact ids
it already accepted, with the accepted-id set pruned at the persisted offset
plus a bounded retention window; the startup-only floor-replay special case
is deleted.

Refs #107246
2026-07-14 15:40:29 +05:30
Ayaan Zaidi f942734bb1 fix(telegram): bind spool claim liveness to process start identity
Spool claim owners now encode pid:starttime:uuid, and live-owner detection
requires the pid to exist with a matching process start time. Bare
process.kill(pid, 0) treated Linux thread IDs and recycled PIDs of the new
gateway as a live foreign owner, wedging a chat lane behind a dead claim for
the full 30-minute lease after a restart. Legacy pid:uuid and explicit-x
owners keep existence-only lease protection so rolling upgrades and
no-starttime platforms cannot double-dispatch a live worker's claim.

Refs #107246
2026-07-14 15:40:29 +05:30
Peter Steinberger ee472357cb refactor(msteams): use Express listen errors 2026-07-14 03:06:11 -07:00
Alix-007 a9c70f3956 fix(twitch): time out Helix user resolution lookups (#105883)
* fix(twitch): time out Helix user resolution lookups

* test(twitch): satisfy resolver lint guards

* test(twitch): satisfy resolver account typing

* test(twitch): prove resolver recovery after timeout

* test(twitch): use explicit credential placeholder

* chore(changelog): defer Twitch note to release

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 02:56:39 -07:00
Peter Steinberger cd7290bc29 fix(discord): show only agent status in progress drafts (#107338)
* fix(discord): show agent status only in progress drafts

* test(discord): preserve explicit progress label expectation

* test(telegram): update default progress label fixtures

* test(ui): use supported hidden-label assertions
2026-07-14 02:52:01 -07:00
Peter Steinberger 673b163b72 refactor(cli): use Commander native APIs 2026-07-14 02:45:52 -07:00
Peter Steinberger 88e5dc1219 refactor(oc-path): reuse YAML path resolution 2026-07-14 02:33:33 -07:00
Dallin Romney 561cf56c53 refactor(workboard): share control ui contract (#102271)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 02:33:22 -07:00
Peter Steinberger 92cca9343e feat(linux): headless node device capabilities (camera, location, notifications) (#107193)
* feat(linux): add node device capabilities

* fix(linux-node): actionable pending-approval error + node-host advertise integration test

* fix(linux-node): map geoclue access-denied to LOCATION_DISABLED; floor camera maxWidth to avoid zero-height scale

* fix(linux-node): clamp small camera maxWidth to 2 instead of default

* docs(linux-node): clarify where-am-i -t is a process timeout, not update throttle

* refactor(gateway): extract legacy-node filter + rejection hint to fit LOC ratchet; docs-map + deadcode baseline

* fix(gateway): drop now-unused DEFAULT_DANGEROUS_NODE_COMMANDS import after hint extraction

* test(node-host): drop imports orphaned by removed error-code test
2026-07-14 02:30:36 -07:00
snowzlmbot e8ad0466ff fix: render assistant transcript headers safely (#99404)
* fix: render assistant transcript headers safely

Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com>

* fix(markdown): nest crossing annotation spans

* fix(markdown): protect final transport projections

* refactor(markdown): split transcript render ownership

* test(ui): cover assistant transcript render flag

* refactor(markdown): keep transcript helpers private

* docs(changelog): note assistant transcript headers

* chore(plugin-sdk): refresh transcript annotation baseline

* fix(markdown): harden final transcript projections

* docs(changelog): defer transcript note to release

* refactor(markdown): centralize HTML tokenization

* fix(markdown): satisfy lint gates

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com>
2026-07-14 02:25:37 -07:00
Peter Steinberger b54a455e38 test(zalo): prove poll backoff cancellation 2026-07-14 02:21:25 -07:00
NIO cc76dc1d8f fix(zalo): make poll error backoff abort-aware 2026-07-14 02:21:25 -07:00
Peter Steinberger 31a845875d refactor(qa-matrix): trim internal exports (#107331) 2026-07-14 02:18:24 -07:00
Peter Steinberger 22d30bee2b test(zalo): narrow message adapter fixture (#107326) 2026-07-14 02:09:12 -07:00
Peter Steinberger 4893523d69 refactor(oc-path): trim internal exports (#107321) 2026-07-14 02:03:58 -07:00
Peter Steinberger 4341d85268 refactor(google): use GenAI runtime enums 2026-07-14 01:51:34 -07:00
Peter Steinberger cbfad474a6 refactor(zalo): trim internal exports (#107312) 2026-07-14 01:51:09 -07:00
QiuYuang 9d1a75df2d fix(googlechat): bound auth transporter fetches (#106178)
* fix(googlechat): bound auth transporter fetches

* fix(googlechat): compose auth fetch deadlines

Co-authored-by: 毛宇豪0668001457 <mao.yuhao@xydigit.com>
Co-authored-by: 0668000787 <ma.weibin@xydigit.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: 毛宇豪0668001457 <mao.yuhao@xydigit.com>
Co-authored-by: 0668000787 <ma.weibin@xydigit.com>
2026-07-14 01:50:15 -07:00
Dallin Romney 54d31a1306 refactor(qa): share Matrix flows across drivers (#101253) 2026-07-14 01:48:30 -07:00
Peter Steinberger 1e62d1f001 refactor(file-transfer): trim internal exports (#107307) 2026-07-14 01:43:19 -07:00
Peter Steinberger f8fb478e4c refactor(ollama): trim internal exports (#107296) 2026-07-14 01:32:48 -07:00
Peter Steinberger 2444cc2f37 refactor(openshell): trim internal exports (#107291) 2026-07-14 01:20:03 -07:00
wahaha1223 b58e0875ed fix(voice-call): show ngrok errors when startup output is fragmented (#107122)
* fix(voice-call): preserve split ngrok startup errors across stderr chunks

* fix(voice-call): bound split ngrok error tail

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-14 01:16:10 -07:00
Peter Steinberger 16ff48c729 refactor(time): trust pretty-ms defaults 2026-07-14 01:15:43 -07:00
Peter Steinberger 3d15bf513e fix(onepassword): preserve pending tool authorization (#107275)
* fix(onepassword): preserve pending tool authorization

* refactor(onepassword): consume pending authorization in helper

* chore: defer release note generation
2026-07-14 01:12:04 -07:00
Peter Steinberger bb6874fddf feat(sessions): upstream liveness for adopted catalog sessions (#107009) 2026-07-14 01:09:05 -07:00
Peter Steinberger 473753001a refactor(google-meet): trim internal exports (#107284) 2026-07-14 01:07:06 -07:00
Peter Steinberger 5bcee076a5 refactor(channels): deprecate the never-consumed group intro hint adapter (#107252)
* refactor(channels): deprecate the never-consumed group intro hint adapter

* chore(channels): compress the intro-hint deprecation note to satisfy the size ratchet
2026-07-14 01:06:13 -07:00
Peter Steinberger 202dea59bd fix(workboard): grant dispatch workers required tools 2026-07-14 01:00:37 -07:00
Peter Steinberger b940339c32 fix: use plain agent progress labels (#107260)
* fix(channels): simplify agent progress labels

* chore: keep changelog release-owned

* chore: refresh bundled channel metadata
2026-07-14 01:00:24 -07:00
Peter Steinberger 4974750614 refactor(memory): use Chalk theme builders directly 2026-07-14 00:36:04 -07:00
Peter Steinberger ced9a4ae22 refactor(zalouser): trim internal exports (#107247) 2026-07-14 00:20:48 -07:00
Peter Steinberger 644d4c3d23 fix: explain and control native session discovery (#107162)
* fix: make native session discovery configurable

* refactor: split native session discovery helpers

* chore: keep release notes in PR body

* fix: refresh generated session protocol models

* test(ui): avoid shared lazy-element mock race
2026-07-14 00:18:18 -07:00
Peter Steinberger 84500db379 refactor(plugin-sdk): isolate HTML entity runtime 2026-07-14 00:16:37 -07:00
Peter Steinberger b58a75d726 refactor(html): share entity decoding 2026-07-14 00:00:05 -07:00
Peter Steinberger ab95871dd5 refactor(tlon): remove dead exports (#107233) 2026-07-13 23:59:46 -07:00
Peter Steinberger 69eb20871d chore(codex): update Codex CLI to 0.144.4 (#107208)
* chore(codex): update Codex CLI to 0.144.4

* fix(codex): validate interrupt params through request map
2026-07-13 23:58:19 -07:00
Peter Steinberger b34bba8e57 refactor(channels): migrate the remaining nine group-policy walkers onto the scope tree (#107181)
* refactor(channels): migrate irc, nextcloud-talk, zalouser, slack, and matrix group policy onto the scope tree

* fix(irc): drop unused tree binding in group match

* fix(zalouser): keep wildcard lookup opt-in for explicit-only candidates

* fix(zalouser): adapter opts into the wildcard fallback candidate

* refactor(channels): migrate feishu, msteams, and discord group policy onto the scope tree and drop the core discord duplicate

* fix(msteams): restore the cross-team scan fallback for policy-less matched teams

* fix(feishu): keep the adapter's zod-typed group config for the scope tree

* revert(core): keep the discord require-mention fallback until stage 3 makes it provably redundant

* chore(matrix): drop the now-unused channel entry match re-export

* refactor(telegram): migrate group policy onto the scope tree

* test(telegram): keep the bot token fixture off secret-scanner patterns

* test(telegram): use a computed key for the bot token fixture

* test(telegram): assemble the bot token fixture indirectly for scanner and lint
2026-07-13 23:56:35 -07:00
Peter Steinberger e0b52a9618 feat: resume OpenCode and Pi sessions in terminal (#107200)
* feat: resume OpenCode and Pi sessions in terminal

* refactor: keep Pi session commands internal
2026-07-13 23:54:40 -07:00
Peter Steinberger 75cd0efb04 refactor(line): remove dead exports (#107231) 2026-07-13 23:54:12 -07:00
Peter Steinberger a2b4c4e17d refactor(signal): trim dead exports (#107217) 2026-07-13 23:43:46 -07:00
Peter Steinberger 6625ea92f0 refactor(codex): evaluate startup deadlines first 2026-07-13 23:40:39 -07:00
Peter Steinberger c953d8ec41 fix(codex): gate startup phases before deadlines 2026-07-13 23:40:39 -07:00
Peter Steinberger cbb5e97dd4 refactor(whatsapp): trim internal exports (#107206) 2026-07-13 23:23:11 -07:00
Peter Steinberger 21382b3755 refactor(qqbot): use silk-wasm buffer inputs 2026-07-13 23:19:54 -07:00
Peter Steinberger d9d3d4b9e3 refactor(matrix): use fake-indexeddb prototype 2026-07-13 23:11:49 -07:00
Peter Steinberger 834810b3d6 refactor(imessage): trim internal exports (#107196)
* refactor(imessage): trim internal exports

* test(imessage): type inbound dispatch mock
2026-07-13 23:05:24 -07:00
ruizcrp 40cf6c51b3 feat(workboard): add manual card movement surfaces (#96554)
Adds consistent manual Workboard movement across CLI, slash commands, and agent tools while preserving operator authority and agent claim isolation.

Co-authored-by: Ross I4JU <ross@i4ju.ch>
2026-07-13 23:01:06 -07:00