Commit Graph

790 Commits

Author SHA1 Message Date
kshitij f090110483 chore: contributor email mappings for Soju06 and JabberELF 2026-08-02 21:43:26 +05:30
kshitij 9c6e85688c chore: map RyderFreeman4Logos@gmail.com to aider4ryder 2026-08-02 21:35:32 +05:30
kshitijk4poor 4b3f0148d1 chore: add contributor email mapping for nkreadly07 2026-08-02 20:04:04 +05:30
Teknium 845031ad81 chore: map salvaged contributor emails (CocaKova, sergioperezcheco, x7peeps) 2026-08-02 00:11:50 -07:00
kshitij ed2ae200da chore(contributors): add contributor map sswdarius@gmail.com 2026-08-02 12:18:40 +05:30
fangliquanflq f5ca0e2f0b fix(gateway): honor empty WhatsApp allow_from over env grants
Select allowlist source by config key presence so allow_from: [] does not fall through to WHATSAPP_* env carriers on Baileys or Cloud.
2026-08-02 11:50:05 +05:30
fangliquanflq 6035f50477 chore(contributors): add contributor map fangliquan@qq.com 2026-08-02 11:50:05 +05:30
kshitijk4poor ff01e2f6d7 chore: add contributor email mapping for 686f6c61
Attribution entry for PR #76113 salvage (github@00b.tech -> 686f6c61).
2026-08-02 11:15:47 +05:30
Teknium 8e2997125f chore: map salvaged contributor emails (keepConcentration, JoaoMarcos44) 2026-08-01 16:42:51 -07:00
Teknium 8b8ebc26bb chore: map contributors arcabotai, Sora-bluesky 2026-08-01 14:30:16 -07:00
Teknium 467c312280 chore: map salvage contributor email (chelsealong) 2026-08-01 10:47:45 -07:00
kshitij 5b3c66a04f chore: add carlotestor to contributor email directory
Required for check-attribution CI on salvage PR #76083.
2026-08-01 15:58:25 +05:30
kshitijk4poor 84952e89f9 chore: map tron@chriswykel.com -> Wpnx330 (PR #68334 salvage) 2026-08-01 15:43:13 +05:30
kshitijk4poor 7d54cb2672 chore: add contributor email mapping for @rodboev 2026-08-01 14:05:29 +05:30
kshitijk4poor e5ba319a5c chore: add contributor email mappings for @Prontsevich 2026-08-01 12:37:17 +05:30
kshitijk4poor 4773e965c0 chore: add hans@groupg.org → hansai-art to AUTHOR_MAP
Contributor email mapping for PR #66011 (model-switch marker dedup).
2026-08-01 11:53:03 +05:30
Teknium e008b62a72 fix(state): route no-more-rows retries through the shared patience helper; add contributor mappings
The rebase onto main's extracted _sleep_before_write_retry() method left
three call sites pointing at the dropped local helper; rewire them.
Also adds contributors/emails mappings (Dannou, trippyogi, spfcraze).
2026-07-31 23:18:12 -07:00
Teknium 6989a79745 chore: contributor email mappings (rkfshakti, x7peeps) 2026-07-31 23:16:58 -07:00
Teknium f9522fdcef chore: map salvage contributor emails (zakhounet, Kewe63) 2026-07-31 22:33:53 -07:00
Teknium dd15a28250 chore: map contributor dongjiang1989 2026-07-31 22:33:11 -07:00
Teknium 11f4c213a5 chore: map contributor Zeraphim 2026-07-31 22:33:03 -07:00
Teknium 3b1dfca207 chore: map contributor spfcraze 2026-07-31 22:33:00 -07:00
Teknium ae8131ba1b chore: map contributor praneshnikhar 2026-07-31 22:32:48 -07:00
Teknium 1737741730 fix(copilot): follow-ups for salvaged PR #58743
- Bound ALL reads of the on-disk JWT store through one _read_jwt_store()
  helper (load, eviction, save-merge) — the 1 MiB cap previously only
  covered the load path; eviction and save could still parse an
  oversized/corrupt store and rewrite it back out (sweeper finding).
- Fix the class, not the site: the recovery gates checked the literal
  provider == "copilot" while /model and profile configs can leave the
  alias spelling in place (the reporter's own log shows provider=copilot
  AND provider=github-copilot in one session — the aliased turns would
  have silently skipped recovery). Single owner:
  AIAgent._is_copilot_provider() (slug aliases + Copilot base-URL
  fallback), used by both run_agent recovery methods and both
  conversation_loop gates.
- Update the salvaged 401 test to current main's client-retirement
  contract (release deferred to GC — no synchronous .close()).
- Add copilot_stale_cred_retry_attempted to the TurnRetryState field
  contract test; add bounded-store and alias-gate regression tests.
2026-07-31 22:31:09 -07:00
xenodmc 6e8691f432 fix(update): fallback to ancestor-PID check for Windows update lock handoff
On Windows the Tauri updater writes its PID to the update marker, then
spawns 'hermes update' via the venv shim. The child receives
HERMES_UPDATE_HANDOFF_PID to recognize the parent lock, but on some
Windows configs the env var is not inherited through the shim subprocess
chain, deadlocking every GUI update.

Fix: when the env-var handoff fails, fall back to walking the Windows
process tree via wmic /format:csv to collect ancestor PIDs. If the
marker PID is found in the ancestor chain, treat it as our own
orchestrating parent and allow the update.

Also fixes wmic output encoding on localized Windows (GBK/CP936) by
using /format:csv which produces clean UTF-8 output.
2026-07-31 22:28:46 -07:00
mromano3 f21332f073 ci(security): include photon sidecar + whatsapp bridge lockfiles in OSV scan
Surgical reapply of PR #46747 by @tank321 onto the current reusable-workflow
form of osv-scanner.yml (the original targeted the old direct-action layout).
Fixes #46738.
2026-07-31 21:24:47 -07:00
ethernet 6ecd335aa8 Merge pull request #75037 from NousResearch/sec-fixes
fix(sec): patch vulnerable deps + add publication-age floors and npm script allow-list

Co-authored-by: Kingsley Wong <7207924+datanerdie@users.noreply.github.com>
Co-authored-by: viky <vikyw89@gmail.com>
Co-authored-by: FT_IOxCS <237263164+ft-ioxcs@users.noreply.github.com>
Co-authored-by: 方明元 <fmy3@qq.com>
Co-authored-by: Yorkstone Supplies <58149681+sycamoregroupltd@users.noreply.github.com>
Co-authored-by: Steven Cuz Leath <Steven.Leath@gmail.com>
Co-authored-by: Kyle French <248366920+Dadmin88@users.noreply.github.com>
Co-authored-by: Eugeniusz Gilewski <egilewski@egilewski.com>
Co-authored-by: Christopher Gara <79837758+christopherrobin88@users.noreply.github.com>
Co-authored-by: LironTTG <147833337+LironTTG@users.noreply.github.com>
Co-authored-by: Austin Porada <bbasketballer75@gmail.com>
Co-authored-by: cresslank <9219265+cresslank@users.noreply.github.com>
Co-authored-by: Ion Mudreac <mudreac@gmail.com>
Co-authored-by: martinramos002 <262243228+martinramos002-bot@users.noreply.github.com>
Co-authored-by: Sensie-Agents <agents@joinsensie.com>
Co-authored-by: alexwill87 <173086651+alexwill87@users.noreply.github.com>
Co-authored-by: BullishMomentum56 <218643122+BullishMomentum56@users.noreply.github.com>
Co-authored-by: pintadoai <240097310+pintadoai@users.noreply.github.com>
Co-authored-by: Alfred Sahlberg <dinmail@gmail.com>
Co-authored-by: liuhao1024 <sunsky.lau@gmail.com>
Co-authored-by: Richard Ham <richard.ham@live.com>
Co-authored-by: jrcrittenden <jrcrittenden@gmail.com>
Co-authored-by: 峯岸 亮 <1920071390@campus.ouj.ac.jp>
Co-authored-by: Marcus Martini <6473852+napoleonmm83@users.noreply.github.com>
2026-07-31 14:07:32 -04:00
ethernet bc49e98143 docs(contributors): map salvaged supply-chain PR authors
scripts/contributor_audit.py resolves Co-authored-by trailers through
contributors/emails/, so a co-author with a plain (non-noreply) email and
no mapping file silently drops out of the generated release notes.

This PR consolidates ~30 open dependency/supply-chain PRs and credits their
authors as co-authors on the merge commit. Nine of those emails had no
mapping. Added via scripts/add_contributor.py, one file per email:

  vikyw89@gmail.com          -> vikyw89              (#50902)
  fmy3@qq.com                -> superafun            (#60201)
  Steven.Leath@gmail.com     -> Leathal1             (#69711)
  bbasketballer75@gmail.com  -> bbasketballer75      (#69864, #73857)
  mudreac@gmail.com          -> mudrii               (#66871, #63099)
  agents@joinsensie.com      -> Sensie-agents        (#65150)
  dinmail@gmail.com          -> sahlbergalfred4-lgtm (#70003)
  richard.ham@live.com       -> zebadee2kk           (#50052)
  jrcrittenden@gmail.com     -> jrcrittenden         (#28749)

egilewski@egilewski.com, sunsky.lau@gmail.com and 1920071390@campus.ouj.ac.jp
were already mapped. Every other co-author uses a GitHub id+login noreply
address, which auto-resolves and needs no file.

tests/scripts/test_contributor_map.py passes.
2026-07-31 13:56:54 -04:00
Austin Pickett 44e5641dac chore(contributors): map james@terminaloutcomes.com -> yaleman 2026-07-31 10:17:30 -04:00
kshitijk4poor 01c0879785 chore: map jordan.mymail@gmail.com -> lxman in contributor directory
Attribution prerequisite for salvaging PR #74522 (micro-compaction);
the contributor audit requires every commit-author email on main to
resolve to a GitHub login.
2026-07-31 14:55:45 +05:30
SmokeDev 3e7a11ca2e fix(test-runner): native Windows venv probe + glyph-safe stdio
Two Windows fixes for the canonical test runner, salvaged from #66496:

- scripts/run_tests.sh: probe the native Windows venv layout
  (Scripts/activate → Scripts/python.exe) alongside bin/activate,
  adapted to main's pytest-import-guarded loop with SKIPPED_VENVS
  reporting. Without it a python -m venv / uv venv on Git Bash/MSYS is
  never found and the runner refuses to start.
- scripts/run_tests_parallel.py: _make_stdio_glyph_safe() reconfigures
  stdout/stderr to UTF-8 (errors=replace fallback) so the ✓/✗ progress
  glyphs cannot crash a cp1252 console when the runner is invoked
  directly (run_tests.sh's PYTHONUTF8=1 only covers the wrapped path).
  No-op on UTF-8 stdio. Ships 3 OS-independent cp1252 tests plus
  encoding=utf-8 in the runner-subprocess assertions.

Dropped from the original PR: the USERPROFILE/HOMEDRIVE/HOMEPATH/
SYSTEMROOT env-forwarding hunk — main's WIN_ENV loop already forwards
a superset (#67385/#70813).
2026-07-29 21:30:53 -07:00
Tony (eazye19) 7216ca19a6 fix(tests): live-system guard treats only argv[0] as the executable
Argv-list commands now scan only argv[0] against _PROCESS_KILLERS, ending
false positives like ['cat', '.../skill'] ('skill' is a real util-linux
binary name). Wrapper executables (sh/bash/env/nohup/timeout/sudo/xargs/…)
keep full-token scanning so ['bash', '-c', 'pkill …'] and
['env', …, 'pkill', …] stay blocked; string commands are unchanged.
Adds tests/test_live_system_guard.py pinning both directions.

Salvaged from PR #43299 by @eazye19.

Co-authored-by: Tony (eazye19) <support@captureclient.net>
2026-07-29 21:30:53 -07:00
fcavalcantirj f04fd1e7ad fix(update): test runs never mutate the live checkout — pytest-guard the marker and repair paths
Guard the .lazy-refresh-incomplete marker writer (update_cmd), launch-time
recovery (main.py), and _early_recovery repair paths behind a two-condition
check: running under pytest AND the target is this live checkout. Sandboxed
tmp_path tests still exercise the real code paths.

Salvaged from PR #72002 by @fcavalcantirj. Fixes #72000.

Co-authored-by: fcavalcantirj <felipe.cavalcanti.rj@gmail.com>
2026-07-29 21:30:53 -07:00
mehmetkr-31 dda289933d test(cli): fix order-dependent test_resume_quiet_stderr flake at the source
test_session_not_found_goes_to_stdout_in_full_mode passes in isolation but
fails in a full tests/cli run. Two independent leaks from the same neighbor
test conspire:

1. test_cli_init.py's _make_cli() reloads cli.py while prompt_toolkit is
   stubbed with MagicMocks and never reloads it back, so sys.modules['cli']
   is left with a mock _pt_print/_PT_ANSI and cli._cprint silently no-ops
   for every later test. Fixed by reloading cli once more with the real
   modules visible (try/finally).

2. prompt_toolkit's print_formatted_text caches its Output on the
   process-global default AppSession the first time it renders without an
   explicit output=. Under capsys (which swaps sys.stdout per test), the
   first CLI test to emit through _cprint locks that cache onto its own
   captured stdout, so later capsys tests read an empty buffer. Fixed with
   an autouse fixture in a new tests/cli/conftest.py that resets the cached
   output around each test.

Neither change touches production code or the flaky test's own assertion.

Related to #59358 (which addresses the same flaky test by mocking _cprint in
the assertion instead; this fixes the two underlying leaks at the source and
does not modify test_resume_quiet_stderr.py).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 19:53:17 -07:00
Teknium 0524eccdd8 chore: contributor mapping for mattmiller@comfy.org (@mattmillerai) 2026-07-29 19:48:30 -07:00
Teknium f1120ada4d chore: contributor mappings for FraserHum + AlexxRussell (#72542/#73982 salvage) 2026-07-29 19:11:05 -07:00
Teknium 0bd82a8a84 chore: contributor mapping for eapwrk (honcho salvage, #67576) 2026-07-29 18:55:10 -07:00
Jorkey Liu 05afea65f4 fix(session): resolve default state DB path at call time
DEFAULT_DB_PATH in hermes_state.py is computed at import time, freezing
the developer's real ~/.hermes even when a test fixture (or runtime
profile switch) later redirects HERMES_HOME. Any default SessionDB() —
e.g. gateway SessionStore — then opened the real state.db.

Add _default_db_path(): resolves get_hermes_home() fresh at call time,
while a deliberately re-pointed DEFAULT_DB_PATH (the established
monkeypatch escape hatch) still wins via an import-time snapshot
comparison, preserving existing test behavior. SessionDB.__init__ and
session_search's requirement check now use the resolver; explicit
db_path arguments are untouched.

Reimplemented from PR #11875 by @JorkeyLiu (original diff predates the
hermes_state rewrite); regression test ported and modernized.
2026-07-29 18:55:10 -07:00
webtecnica 66c4c9c0b1 fix(tests): forward Windows location vars through the hermetic runner; patch Path.home() in hindsight _clean_env
Combines the Windows-hermeticity cluster (#67512 by @webtecnica, earliest;
#71112 by @Sanjays2402; #67196 by @anatolijlaptev1991-ctrl) into one fix:

- scripts/run_tests.sh: env -i forwarded only HOME, but native Windows
  CPython resolves Path.home() from USERPROFILE (or HOMEDRIVE+HOMEPATH),
  stdlib paths from LOCALAPPDATA/APPDATA, ssl/sockets need SYSTEMROOT,
  tempfile needs TEMP/TMP — the strip broke collection tree-wide on
  native Windows (issues #67385, #70813). Location vars (never
  credentials) are now forwarded, each only when actually set, so
  POSIX runs are byte-for-byte unchanged (probe-verified both ways).
  PYTHONUTF8=1 added for legacy-codepage consoles printing the
  runner's glyphs.
- tests/plugins/memory/test_hindsight_provider.py: _clean_env patched
  HOME only; on Windows Path.home() ignores HOME. Now patches
  Path.home directly into tmp_path (from #67196).

Not ported: #71112's guard test — it regex-reads run_tests.sh source,
which the test policy bans (never read source code in tests).

Fixes #67385. Fixes #70813.
2026-07-29 18:55:10 -07:00
jethac 2c37b1af25 test(approval): event-based waits for blocking-approval E2E polls (PR #63522 port)
Manual port of @jethac's #63522 onto the pruned tree: 3 of the original
6 fixed-budget poll sites survive (3-concurrent-agents wait, session-A/B
routing wait, two-session queue wait). Replaced each 2.5-5s hard-ceiling
poll loop with the PR's _wait_until(predicate) helper — generous 30s
ceiling reached only on genuine failure, instant return on the green
path, assert with message instead of silent fall-through.

Dropped: the 3 hunks targeting pruned code, and the unrelated
scripts/release.py mailmap hunk (AUTHOR_MAP is frozen; contributor
mapping handled via contributors/emails/).
2026-07-29 18:55:10 -07:00
Teknium 36f885573c chore: map webtecnica contributor email for attribution 2026-07-29 18:15:54 -07:00
Teknium 52b16c2d92 chore: map salvaged contributor emails for attribution 2026-07-29 18:13:09 -07:00
kshitijk4poor 1f70ba6bca fix(mcp): propagate cancellation untouched in _connect_server orphan reap
Follow-up to the salvaged #62026 ownership fix, folding in #72054's
CancelledError rule by @adurham: start() already cancels/reaps its own
run task when the caller's connect timeout cancels start() itself, so
_connect_server() must propagate cancellation without awaiting a
redundant shutdown() inside a cancelled context. Non-cancellation
failures on the unclaimed (standalone probe) path still reap the parked
task, now with the reap failure logged instead of raising over the real
error.

Also maps mrz@mrzlab630.pw for the attribution check.

Co-authored-by: Adam Durham <amdnative@gmail.com>
2026-07-30 03:35:35 +05:30
Teknium b0a8775d66 chore: map salvage contributors 2026-07-29 11:35:33 -07:00
Teknium 57b3c1a86f chore: contributor mappings for cua doctor/key-combo salvage (#62915, #68452, #71590) 2026-07-29 11:09:08 -07:00
Teknium 8eb5e2cd20 chore: map contributor email for umi008 2026-07-29 11:08:58 -07:00
Teknium 7de33cc57e Merge pull request #64536 from victor-kyriazakos/feat/gateway-health-diagnostics
feat(monitoring): gateway health & diagnostics OTLP export
2026-07-29 08:58:33 -07:00
Teknium 707f316687 chore: map contributor email shag@agentmail.to -> sg-shag 2026-07-29 08:42:16 -07:00
victor-kyriazakos 1773752c8c Merge remote-tracking branch 'origin/main' into feat/gateway-health-diagnostics-monitoring
# Conflicts:
#	uv.lock
2026-07-29 15:37:14 +00:00
Teknium b0734b0aa5 chore: contributor mapping for beardedeagle (#71083 salvage) 2026-07-29 08:24:00 -07:00