Commit Graph

431 Commits

Author SHA1 Message Date
kshitij 1f8fdc7bd8 chore: map contributor email for @infocentr 2026-08-14 16:53:40 +05:30
Teknium 1e18f68148 chore: map contributor email for @dpersek 2026-08-14 01:31:26 -07:00
Teknium b9e7bead13 fix(gateway): coalesce same-tick async-delegation completions into one turn (#70300)
The async-delegation watcher drained the completion queue as a batch but
then delivered each event as its own synthetic turn, flooding the session
when a fan-out of background subagents finished together. Builds on the
per-process completion batching salvaged from PR #71898 (thanks
@yuzilongleif-collab) which coalesces concurrent _run_process_watcher
completions behind a short per-route fan-in window.

This commit adds the async-delegation half: group the drained batch by
full routing key (session_key + parent_session_id + platform/chat/thread/
user) and inject ONE consolidated turn per group. Durable-ack handling
stays honest: sibling rows are claimed up front via claim_event_delivery;
rows another consumer owns are excluded from the consolidated text (no
double-delivery); sibling claims are acknowledged only after adapter
acceptance and released (still pending) on failure. Events for different
sessions never coalesce, and a single-event group rides the existing
per-event path unchanged (latency and text identical).

Tests: 3 same-tick events -> exactly one adapter.handle_message carrying
all 3 results with all 3 durable rows delivered; 2 sessions -> 2 turns;
single-event path unchanged; failed batch releases claims and retries;
foreign-claimed sibling excluded and left pending.
2026-08-14 01:08:25 -07:00
Teknium 1292a31851 chore: map salvage contributor emails 2026-08-14 01:08:13 -07:00
kshitij 285eaaddc0 chore: add contributor email mapping for seze@andrew.cmu.edu
Maps to GitHub user Shedrackeze002 (PR #85616).
2026-08-14 13:15:56 +05:30
Teknium e8debfbdc3 chore: map contributor email for attribution audit 2026-08-13 23:43:54 -07:00
teknium1 5970ac73ab chore(skills/box): Hermes-compliance polish + docs registration
- author field to 'Chris Kim (iskysun96), Hermes Agent' convention
- 'Use this skill for' -> 'When to Use' section heading
- related_skills: google-workspace
- register auto-gen docs page, catalog row, sidebar entry
- contributors/emails mapping for iskysun96
2026-08-13 22:09:44 -07:00
Teknium d4b0039940 chore: map contributor email for @silence-de 2026-08-13 22:09:37 -07:00
Teknium bfff32ae8c chore: map contributor email for @sjungwon03 (PR #79787 salvage) 2026-08-13 12:31:02 -07:00
Teknium 4ef7ee9971 chore(contributors): map xaviersudre email for PR #75040 salvage 2026-08-13 11:56:43 -07:00
Teknium 991e2efdf4 chore: map contributor emails for cherry-picked commits 2026-08-13 11:49:24 -07:00
Teknium e70b187d51 chore: map salvage contributor emails 2026-08-13 11:49:14 -07:00
Teknium 3fc320c7c1 chore: map contributor email for cherry-picked commit (#72056) 2026-08-13 11:20:27 -07:00
Victor Kyriazakos d6d4338a01 chore: map contributor email for cherry-picked commit 2026-08-13 11:20:27 -07:00
kshitij a569d5bb1b chore: map contributor emails for adopted commits 2026-08-13 23:43:15 +05:30
Teknium 56f8655bc6 chore: map simonvanlaak contributor email 2026-08-13 11:12:19 -07:00
Teknium 35720fbc44 chore: map contributor email 2026-08-13 11:12:05 -07:00
Teknium 0818086c50 fix(kanban): backfill legacy gateway notify subs to notify+wake on first migration
Before delivery_mode existed the notifier woke unconditionally when the task
carried a session_id — pre-existing gateway subscriptions had de facto active
wake. The column's 'notify' default alone would silently disable that on
upgrade. Backfill gateway rows to notify+wake on first-add only (tui stays
notify); explicit user downgrades are never overwritten by re-migration.
Sabotage-verified regression tests included.
2026-08-13 10:47:40 -07:00
kshitij 4498daf00f chore: map contributor email hustwkr@users.noreply.github.com
Bare noreply form (no +<id> prefix) needs an explicit mapping file
for check-attribution CI.
2026-08-13 22:44:23 +05:30
uperLu 4901564694 chore: map contributor email 2026-08-13 22:07:32 +05:30
Teknium f84ecd3607 chore: map zhjay@stu.xjtu.edu.cn -> ZHJay for contributor attribution
(cherry picked from commit 06899b54437f7bb36b126d96a1e740afeb34d855)
2026-08-12 22:38:17 -07:00
Teknium 7d0b5a332c chore: AUTHOR_MAP for zhouou6@users.noreply.github.com → shali10 2026-08-12 19:43:41 -07:00
Teknium ea6f4e33c3 chore(contributors): map ernst-bablick email for PR #69609 salvage 2026-08-12 19:43:29 -07:00
Hermes Agent 12a7a46578 chore: map hermes-agent@nousresearch.com contributor email 2026-08-12 19:43:22 -07:00
Teknium c89ca9c4bf chore(attribution): map dnethusahan.h05@gmail.com -> deaneeth (PR #64317 salvage) 2026-08-12 18:38:25 -07:00
Teknium e3215cfbdc chore: map hfsearcy@gmail.com -> hsearcy for contributor attribution 2026-08-12 17:07:51 -07:00
Teknium d48c5f29ee
Merge pull request #84878 from NousResearch/salv/62319
fix(desktop): allow remote gateway token storage on keyring-less Linux (salvage #62319)
2026-08-12 16:50:44 -07:00
Teknium 9994bc9ec9 fix(gateway): enforce post-auth normalized reaction observer
Builds on Paolo Antinori's #68431 salvage for #64176. Move plugin dispatch behind the profile-scoped runner authorization boundary, fail closed on malformed reaction identities, preserve observer registration across Telegram app rebuilds, and document the deliberately observer-only contract.

Co-authored-by: Paolo Antinori <pantinor@redhat.com>
2026-08-12 16:42:28 -07:00
Teknium 33840149d0 chore: map voice contributor attribution 2026-08-12 16:42:07 -07:00
Teknium 98c3edbd8b chore: map github.commits@widow.cc -> Zeus-Deus for contributor attribution 2026-08-12 16:40:20 -07:00
Teknium d409f67485 feat(platforms): add typed plugin send paths
Route plugin target parsing, validation, and host-driven delivery through PlatformEntry across CLI and cron while preserving the host-only send_message policy.
2026-08-12 16:27:19 -07:00
Teknium 7a5062fbcd feat(plugins): add runtime-backed plugin Doctor
Validate plugin manifests, imports, hook signatures, and runtime registrations through the real plugin loader in an isolated temporary home.
2026-08-12 16:27:07 -07:00
Teknium 5265409012 docs(plugins): document config and state ownership 2026-08-12 16:26:43 -07:00
Teknium f6aaff4646 chore(contributors): map Magnus Hedemark 2026-08-12 16:25:20 -07:00
kshitij 1d3d021282 chore: map 1759158233@qq.com -> wanquanY for contributor attribution 2026-08-13 01:34:00 +05:30
rob-maron 7113a69248
fix(models_dev): map meta-ai provider to models.dev 'meta' id (salvage #81418) (#84679)
* fix(models_dev): map meta-ai provider to models.dev 'meta' id

Muse Spark models (muse-spark-1.1/1.2/-contributor) are served via the Meta
Model API and reverse-map from api.meta.ai to the Hermes provider id 'meta-ai'.
models.dev keys the same models under the provider id 'meta'.

lookup_models_dev_context() / _get_provider_models() resolve the models.dev id
strictly via PROVIDER_TO_MODELS_DEV.get(provider) (no raw-id fallback, unlike
get_model_info()), so an unmapped 'meta-ai' missed entirely and context fell
back to the generic 256K default instead of the true ~1M window. Add the
meta-ai->meta mapping (plus a defensive meta->meta) so context and pricing
resolve from models.dev: 1.1=1,000,000; 1.2 & -contributor=1,048,576.

* add contributor email

---------

Co-authored-by: Beto de Paola <betodepaola@meta.com>
2026-08-12 14:42:00 -04:00
kshitij a5170af4a8 chore: map hermes-agent@nous.local commit identity to @C-EXCITE-STUDIO
Salvaged PR #83678's commit is authored under a generic local agent
identity with no linked GitHub account; map it to the PR opener for
release attribution (same pattern as hermes-agent@users.noreply.local).
2026-08-12 13:58:26 +05:30
elisam0 17688f994e
feat: add Nemotron Lightning to reasoning timeout (#83982) 2026-08-12 08:21:09 +00:00
kshitij a2fbe745b4 chore: map contributor email cmoiccool 2026-08-12 13:20:38 +05:30
kshitij 936dd7346f chore: add landaun to contributor email map for #83906 salvage 2026-08-11 20:37:06 +05:30
Teknium 2cdb30a474 chore: contributor email mapping for salvaged commit 2026-08-10 19:16:59 -07:00
Teknium 0d21eb82b5 chore: contributor email mapping for salvaged commit 2026-08-10 18:04:59 -07:00
Michael Gannotti 373631bea1 fix(dashboard): raise fd soft limit + replace iterdir with scandir to stop fd leak (#81547)
Two-part fix for the dashboard fd exhaustion reported in #81547:

1. Raise RLIMIT_NOFILE soft limit on startup (before uvicorn binds).
   macOS defaults to 256 for LaunchAgent processes — too tight for the
   dashboard which opens 3 fds (db+wal+shm) per SessionDB per request
   across all profiles. After days of polling the soft limit exhausts
   and every os.listdir/open raises OSError [Errno 24]. The helper raises
   to the hard limit (or minimum 4096), matching the reporter's ulimit
   workaround. No-op on Windows (no resource module).

2. Replace bare Path.iterdir() with context-managed os.scandir() in four
   dashboard hot paths: _fallback_profile_dicts, file manager list,
   checkpoint listing, and plugin discovery. iterdir() returns a
   generator that holds an open directory fd until fully consumed; if
   an exception interrupts iteration the fd leaks. os.scandir() is an
   explicit context manager that guarantees close on exit, following
   the same idiom already used in /api/fs/list.

Tests: 6 passed, 3 skipped (resource-module tests skip on Windows).
2026-08-10 18:04:59 -07:00
Teknium 1485a4ac2b chore: contributor email mappings for salvaged commits 2026-08-10 17:02:56 -07:00
kshitij b50e27e6d7
Merge pull request #83301 from kshitijk4poor/chore/author-map-angriff36
chore: add Angriff36 to AUTHOR_MAP for PR #29543 salvage
2026-08-11 02:24:30 +05:30
Jakub Wolniewicz 4317c92751 chore(contributors): map Nikita Barkov 2026-08-10 12:43:46 -07:00
Teknium 39a234b133 fix(browser): gate browser_exec on terminal surface; pin schema helpers digest
Follow-ups on the salvaged Browser Use CLI integration (PR #66476):

- browser_exec runs model-written Python on the host. Strip it at
  tool-definition time for sessions whose resolved toolsets exclude
  'terminal' so terminal-less surfaces (locked-down messaging configs)
  don't silently regain host code execution through the browser toolset.
  Session-level gate in model_tools, not a check_fn (check_fn results are
  TTL-cached process-wide across sessions).
- Replace the live 'browser-use skill' schema fetch with a pinned helpers
  digest: no third-party version-drifting text in the prompt, byte-stable
  schema across machines. A/B benchmarked (108 runs, opus-4.8 + kimi-k3,
  6 multi-step web tasks x 3 arms x 3 reps): pinned digest matches the
  full skill dump 36/36 vs 36/36 at ~equal tokens; both cut total task
  tokens ~60% vs the legacy browser_* toolset.
- Docs note for the terminal gate; contributor mapping for salvage.
2026-08-10 10:45:44 -07:00
kshitij 8c13c99189 chore: add Angriff36 to AUTHOR_MAP for PR #29543 salvage 2026-08-10 21:21:41 +05:30
teknium1 0514d67fa6 chore: map contributor email for salvaged commit 2026-08-10 00:23:41 -07:00
StanleyStetson 4d79bd3d02 fix(gateway): reject boolean ordinals and bare confirm_truncate on prompt.submit
Two hardening guards extracted from #82766 by @StanleyStetson:

- bool is an int subclass, so a JSON `true` in truncate_before_user_ordinal
  coerced via int() to ordinal 1 and aimed a CONFIRMED rewind at the second
  user turn — the same silent-loss class as #82756. Reject with 4004.
- confirm_truncate with no truncation target is leaked client rewind state
  on an ordinary submit; fail fast with 4004 instead of silently ignoring
  the flag, so the corrupted client state is surfaced.

Part of the composite fix for #82756.
2026-08-10 11:01:15 +05:30