Commit Graph
53 Commits
Author SHA1 Message Date
彼方 1baba1b9f9 Merge pull request #2725 from langbot-app/fix/session-summary-persistence
fix(monitoring): persist session summaries to avoid history scans
2026-10-20 11:53:06 +08:00
BiFangKNT 810d053df9 fix(monitoring): persist session summaries to avoid history scans
- Maintain counts and display snapshots in source transactions with replay-safe deduplication.
- Read session lists exclusively from summaries and remove execution-only filters.
- Automatically initialize historical summaries in bounded, resumable batches during OSS startup.
- Add behavioral contracts covering accounting, retention, query cost and PostgreSQL concurrency.

Verified with the required session_summary suite and real container upgrade startup.
2026-10-20 06:12:00 +08:00
RockChinQandmultica-agent d9e4e7d9df fix(pipeline): decouple Runner from extension permissions (LANG-54) (#2723)
* fix(pipeline): decouple runner from extension allowlist

Co-authored-by: multica-agent <[email protected]>

* fix(pipeline): complete runner diagnostics and real runtime coverage

Co-authored-by: multica-agent <[email protected]>

---------

Co-authored-by: multica-agent <[email protected]>
2026-10-19 23:07:11 +08:00
BiFangKNT b73f66a234 feat(persistence): enforce image reference storage contract
- Reject structured inline images on ORM and Core writes
- Route plugin run results through the media-aware journal
- Redact legacy inline images before merging run metadata
- Cover storage contracts and regressions on SQLite and PostgreSQL
2026-10-18 12:26:09 +08:00
BiFangKNT cbc849d4e2 fix(storage): unify CAS persistence for inline images
- Externalize inline images in messages and run events before persistence
- Keep snapshots, transcripts, and metadata free of inline payloads
- Serialize messages after externalization to reduce peak memory usage
- Preserve live messages, URL-only images, and SDK image retrieval behavior
- Add regression tests for deduplication, redaction, storage failures, and serialization order
2026-10-18 00:04:20 +08:00
RockChinQ c05aac538f fix(discord): complete streaming media and event delivery 2026-10-17 15:11:29 +08:00
huanghuoguoguo d54e533985 fix(skill): pin revisions per run and preserve shared Box state 2026-10-17 09:32:41 +08:00
HyuandClaude Opus 5.5 c0cfb5c18c feat(pipeline-migration): relax legacy config migration and pin latest runner plugins
- Coerce/default/drop invalid or unknown legacy fields with warnings instead of blocking
- Never block on LocalAgent model; prune dangling KB/tool/MCP references
- Mark custom (non-builtin) 4.10 runners as unsupported_runner instead of failing
- Pin runner plugins to current marketplace versions (0.2.x); fall back to latest when a pin is withdrawn
- Raise plugin install/upgrade timeout to 600s for slow dependency installs
- Assistant configure_pipeline writes the 4.11 runner shape

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 00:09:52 +08:00
RockChinQ 0b5b4cca59 fix(telegram): resolve real-client event and media delivery regressions 2026-10-11 10:14:11 +08:00
Hyu 353b452453 fix(ci): align SDK dependency and validate acceptance migrations 2026-10-11 00:59:51 +08:00
Hyu 1c70218383 feat: reset bot session context while retaining monitoring history 2026-10-10 22:35:27 +08:00
Hyu b8a7649ac2 fix(monitoring): expire interrupted host executions using liveness leases 2026-10-10 21:30:04 +08:00
Hyu 38aa06e149 feat(monitoring): add shared SSE in-flight monitor with draggable dock 2026-10-10 21:30:03 +08:00
Hyu e8da99be63 fix(wecomcs): handle service events and prevent duplicate replies 2026-10-10 16:25:36 +08:00
Hyu 96280b3bcc fix(events): restrict pipeline routes and load agent prompts 2026-10-09 21:22:34 +08:00
Hyu 396b09ecce fix(acceptance): repair official account replies and processor navigation 2026-10-09 20:13:51 +08:00
Hyu 40a3a941a3 fix(monitoring): unify execution records and stabilize streaming cleanup 2026-10-08 03:02:37 +08:00
Hyu 9f76037e64 feat(monitoring): unify execution views and trace tool calls 2026-10-07 22:36:10 +08:00
Hyu 4482e8d876 feat(telemetry)!: upload one record per execution node and one closure per chain
Core no longer assembles a whole trace locally. Every workflow node is uploaded
the moment it completes as its own `execution_node` record, and each execution
closes with exactly one `execution_chain` record; all records of one execution
carry the same `event_id`, so Space groups them back into a single chain.

- every execution starts at an inbound event: event-less Pipeline lanes and
  WebUI/API debug runs synthesize their virtual inbound event at the boundary
  and are marked debug=true, so a Runner is never a trace origin
- sampling is decided once per event from a stable hash of the event id (the
  previous `int(id[:8], 16)` raised on every `platform:`-prefixed id and so
  dropped every successful inbound-event chain) and is reported on each record
  as sample{mode,denominator}; the default mode is now `all`
- the local trace buffer, the 120s TTL, the per-process trace cap and the shared
  open-node mirror are gone, which also removes the truncated-chain upload and
  the re-buffered-closed-trace leak they caused
- a broken chain is always uploaded, and its reason falls back to the first
  failed node so the chain explains itself
- flush keeps records until the sender accepts them and counts what it drops;
  telemetry health replaces the unused send-task queue
- heartbeat reports bound Agent / plugin-processor / event-binding counts
- bound Pipeline and Agent resources (plugins, MCP servers, knowledge bases,
  tools with their Host source, skills, models and the Runner schema selectors
  that picked them) are reported on the chain record
- failure text is bounded and redacted instead of passing exception text through
- the dead per-query feature counters and their call sites are removed

Wire contract: schema 2 (`execution_node` / `execution_chain`).
2026-10-07 09:41:41 +08:00
Hyu 923ebe12af feat(telemetry): attach called platform APIs to their step node on execution traces
Every host step now opens a stage scope, so observations recorded inside it (including cross-task plugin/RPC calls resolved through the execution registry) carry the owning step as parent; the pipeline lane records its own pipeline/run node so acks and replies issued outside the runner still hang off a node.
2026-10-01 18:10:42 +08:00
Hyu 0efc1fb1cc feat(telemetry): trace one inbound event end to end
Execution telemetry already reported window counters. This adds one bounded,
content-free chain per inbound platform event, so a single event can be
followed from its source platform through routing and processing to the
platform API calls it caused.

- telemetry/trace.py: ContextVar trace identity with route and run scopes, and
  a 32-stage bound per chain.
- telemetry/execution.py: keeps at most 64 chains for 120s, decides sampling
  from the observed outcome, and sends one payload per chain keyed by
  query_id = trace_id, so Space fetches a chain by primary identity. Window
  counters are unchanged and remain the source of coverage statistics.
- botmgr / pipelinemgr / orchestrator: bind the trace at the ingress boundary,
  scope routing identity per dispatch, and attach the run identity, so nested
  lanes (event -> route -> pipeline/runner -> platform API) reuse one chain. A
  run reached without an ingress (WebUI debug, service API) owns its own chain.
- space.execution_trace selects off | failures | sampled | all (default
  sampled: failures, WebUI debug runs and every N-th success).

Chains carry only code-defined identifiers (adapter and runner types, route
identity as type:uuid, run id); never message content, tool arguments or
platform user identifiers.
2026-10-01 02:12:44 +08:00
RockChinQ 461b483977 feat: bounded execution telemetry for all processing modes (#2617)
* feat: report bounded execution observations via existing telemetry

* fix: tolerate optional telemetry context in routing
2026-09-30 22:00:24 +08:00
RockChinQ 30585c8657 refactor: remove beta diagnostics collection and reporting (#2616) 2026-09-30 20:24:35 +08:00
huanghuoguoguo c56fa0ba2e fix(skill): reconcile rebase with runner contracts 2026-09-28 10:54:31 +08:00
RockChinQ 08a6ed0fdd fix(runner): normalize PostgreSQL journal timestamps to UTC-naive
Preserve the published timezone-less schema and epoch API contract across run lifecycle, deadlines, leases, heartbeat registry, events, transcripts and retention cutoffs. Exercise the real Host journal with asyncpg under a non-superuser role on metadata and published-migration schemas; 32 PostgreSQL regressions fail before the fix and pass after it.
2026-09-21 17:05:40 +00:00
RockChinQ 79cac0c6a3 fix(reasoning): apply explicit per-call levels without runner config caching 2026-09-19 00:05:49 +08:00
RockChinQ a6ac25cf84 feat(agent): add task-oriented run logs and execution details 2026-09-18 00:59:17 +08:00
RockChinQ b264d46d77 feat: delegate sandbox policy to runners and simplify pipeline migration 2026-09-17 23:05:27 +08:00
RockChinQ 8c119bc4b6 feat: add verified manual pipeline migration for plugin runners 2026-09-16 18:13:11 +00:00
dadachann f8123ead0a feat(telemetry): add isolated beta quality diagnostics and release identity 2026-09-15 09:35:01 +00:00
Hyu d497defbf7 fix(runner): keep installation context within each stream resume 2026-09-15 13:51:27 +08:00
RockChinQ 1277c6da07 feat(runner): filter marketplace recommendations by explicit usage 2026-09-12 12:51:16 +08:00
Hyuanddadachann e631da0073 fix(runner): align SDK pin and complete real runtime verification (#2525)
* fix(runner): align SDK pin and workspace-aware integration fixtures

* fix(ci): format sources and resolve current migration head

* test(persistence): align standalone migration fixtures with current models

* test(web): align smoke fixtures with current processor UI

---------

Co-authored-by: dadachann <[email protected]>
2026-09-11 12:57:29 +08:00
RockChinQ d93e44d82d feat(runner): authorize contextual platform APIs 2026-09-11 00:02:44 +08:00
RockChinQ f24a7c9bb2 feat(runner): unify plugin execution across agents and event processors 2026-09-10 18:04:38 +08:00
RockChinQ 8903a40c41 fix(runtime): preserve explicit replies and report bot configuration errors 2026-09-10 17:21:22 +08:00
RockChinQ ea3e32c904 feat(processors): streamline event debugging and run inspection 2026-09-08 02:30:59 +08:00
RockChinQ 237fa6545d feat(processors): add explicitly bound plugin event processors 2026-09-08 00:43:35 +08:00
RockChinQ f5d6a3b348 fix(agent): tolerate intent annotations on no-argument platform tools 2026-09-05 17:15:20 +08:00
Hyu 8f0a55a1f4 fix(agent-debug): stream execution traces with platform mocks and coverage 2026-09-05 15:34:29 +08:00
Hyu a4d36aa2db feat(agent): add event-aware tool permissions 2026-09-04 15:37:41 +08:00
RockChinQ 80f1790e1d refactor(agent): remove enabled state 2026-08-25 23:27:45 +08:00
RockChinQ 6a6a2b865b fix(web): make processor debugging reliable 2026-08-25 15:52:59 +08:00
huanghuoguoguo 444024c5b4 fix(agent): stabilize post-merge release paths 2026-08-04 17:04:40 +08:00
huanghuoguoguo 79611a5513 fix(agent): harden runner integration and QA 2026-08-01 09:23:41 +08:00
huanghuoguoguo 55f42a4ebc chore(merge): sync master into dev/4.11.x 2026-07-31 19:29:38 +08:00
fdc310 6b13c37c3b feat(agent): integrate structured runner interactions 2026-07-22 11:32:17 +08:00
huanghuoguoguo d88d05e27c feat(agent-runner): enforce 4.x host-owned execution 2026-07-19 22:46:01 +08:00
huanghuoguoguo 9aa71d54e3 feat(agent-runner): finalize 4.x processor integration 2026-07-19 22:45:15 +08:00
huanghuoguoguo 517986bd10 feat(agent-runner): support scoped token counting 2026-07-19 22:41:31 +08:00