Commit Graph

861 Commits

Author SHA1 Message Date
Teknium 3dcf0deb29 test(desktop): adapt status-card regression to current router 2026-09-08 03:39:32 -07:00
Teknium 5bb5c2e207 chore: map preserved fanout contributor attribution 2026-09-07 22:25:12 -07:00
Teknium 520e63661c fix: keep command-auth model discovery lazy across config and setup 2026-09-07 21:22:49 -07:00
Max Freedom Pollard 6a04ea67c0 fix(gemini): collapse array-typed tool schemas instead of crashing translation
The enum-compatibility check evaluated `[...] in {...}` on an array `type`,
raising TypeError: unhashable type: 'list' and aborting translation of the whole
tool catalog rather than the one offending tool.

Addresses both review points:

- Reuses tools.schema_sanitizer._normalize_type_array instead of picking the
  first non-null member, so a real union becomes an anyOf of single-type
  branches and no branch is dropped.
- Derives the type outside the key loop and sets nullable after it, so the
  flag implied by "null" in the array beats an input nullable: false whichever
  key the producer emitted first. Both orders are pinned by a parametrized test.
2026-09-07 21:10:50 -07:00
FalconOrtiz db96c8ced7 fix: admit Bot Chat deliveries through the live session owner
Adapt FalconOrtiz's owner-mailbox proposal from #101564 onto the current
notification poller and topical modules. The durable mailbox is cross-process
ingress only: the existing owner admits its normal prompt turn after the
current turn and human FIFO clear. Retain immutable receipts, stable admission
identities, capability and lease fencing, compression lineage, and disable
blind recovery replay of imported turns.

The original stale server hunks and expiring receipt protocol were rebuilt
rather than cherry-picked: the current facade decomposition and durable busy
admission contract differ. Credit the earlier owner-mailbox work in #100544
and durable producer work in #100319.

Co-authored-by: fangliquanflq <fangliquan@qq.com>
Co-authored-by: 686f6c61 <github@00b.tech>
2026-09-07 16:48:29 -07:00
Shimakaze514 869432301b fix(tools): detach stdin in the Windows Git Bash probe (#78820)
`_bash_starts()` in tools/environments/local_gitbash_probe.py ran bash.exe
with capture_output=True but no stdin=, so the MSYS2 child inherited the
TUI gateway's stdin pipe. The MSYS2 runtime switches that shared pipe to
PIPE_NOWAIT; the gateway's next sys.stdin.readline() then fails with
ERROR_NO_DATA, which the CRT maps to OSError(EINVAL), and the gateway
exits with code 1 ("gateway exited") on the first terminal call.

The sibling probe _mandatory_aslr_enabled() already passes
stdin=subprocess.DEVNULL; this brings _bash_starts() in line with it.

Add tests/tools/test_gitbash_probe_stdin.py asserting both probes forward
stdin=DEVNULL to subprocess.run (fails on the pre-fix source).
2026-09-08 02:26:39 +05:30
kshitijk4poor 2e418f7a97 chore: map contributor email for Shimakaze514 2026-09-08 02:26:39 +05:30
kshitijk4poor d6b3b6d9f6 chore: map contributor email for penginman 2026-09-08 02:26:31 +05:30
Teknium 39ed610f8c feat(cron): create paused jobs without a scheduling race
Persist paused state, timestamp, reason and no first trigger in the original
locked creation write. Forward the same boolean contract across CLI, tool,
gateway API and dashboard API, validating at the store boundary. Preserve
explicit operator force-run behavior and normal enabled creation.

The live CLI probe also caught the command shim dropping failure return codes;
forward them so invalid creation reports exit 1 rather than success.

Credit earlier atomic-creation work in #78935 and #94952 and the focused
implementation in #104578. The broader manifest staging layer is not imported.

Co-authored-by: Konstantin Khlopkov <konstantin.khlopkov93@gmail.com>
Co-authored-by: Chloé DuPont <321112755+misschloedupont@users.noreply.github.com>
2026-09-07 08:27:50 -07:00
Teknium 3bc839508e chore: credit reasoning normalization contributors 2026-09-07 08:24:54 -07:00
Teknium 6ab2245f69 chore: credit systemd restart budget contributor 2026-09-07 08:20:09 -07:00
Teknium 42da1f2cf4 chore: map Charles Ji contributor email 2026-09-07 08:10:36 -07:00
Teknium f087cb8055 test: exercise credential controls through PTY and local OAuth wire 2026-09-07 08:06:48 -07:00
Teknium a504202949 chore: credit MCP relay contributor 2026-09-07 06:10:28 -07:00
Teknium 02aa4b536f chore: retain updater contributor release attribution 2026-09-07 06:09:56 -07:00
Teknium d538f4e929 test: preserve themed badge contrast on light terminals 2026-09-07 06:08:37 -07:00
Teknium c573e62074 chore: credit callable fallback contributors 2026-09-07 06:07:16 -07:00
Teknium 7d6d0709cd fix(cron): skip completed scheduled occurrences after snapshot rollback
Capture the exact UTC scheduled instant before either due scanning or the
external fire claim advances jobs.json. Bind it to the durable attempt
before worker handoff; manual and unclassified direct attempts stay null.
Consult any retained completed matching row, independently of stale stamps,
claim-time windows, and newer failed attempts. Preserve unknown and legacy
attempt eligibility rather than guessing that a side effect completed.

Real isolated restart probes reproduce duplicate script writes on base and
suppress them on the fix for builtin tick and provider fire. Distinct and
manual occurrences still execute. The campaign-serialized cron suite is
queued; this progressive commit preserves the verified integration step.

Credit holny's issue #104790 and guard proposal #104323; exact identity
replaces the approximation rather than importing its legacy heuristic.

Co-authored-by: holny <holny@foxmail.com>
2026-09-07 05:57:26 -07:00
Teknium d0c90039a7 fix(messaging): keep profile status truthful without credential inheritance
Preserve the two contributor fixes, slim them to two behavioral invariants, and enter explicitly requested homes even inside a nested scope. Real native remote Desktop changes Disabled to gateway_stopped for default and named profiles; direct API controls preserve explicit disable and empty-profile isolation. Unit A/B and regression suites remain queued under the shared campaign lock.
2026-09-07 05:56:33 -07:00
Teknium 454a7af89c chore: credit Settings scope contributor 2026-09-07 05:56:17 -07:00
Teknium 0daa993450 chore: map Robert Borkowski contributor email
Verify rborkows@gmail.com against original source commit 8a3c545e255b66b6ca4bc4b99cd725c5f7a08632 and GitHub user rborkow (2956000). Preserve the salvaged commit and its authorship; add only its missing release-credit mapping.
2026-09-07 05:06:54 -07:00
Teknium 04fedadbe9 chore: map history contributor email to PLASMA-FR 2026-09-07 04:56:22 -07:00
Teknium 7252d403d8 chore: map preserved Linux launcher contributor 2026-09-07 04:55:17 -07:00
Teknium 768f42f72f chore: preserve home-link diagnostic contributor credit 2026-09-07 04:46:37 -07:00
Teknium 8f7640b622 fix(acp): retain only ephemeral-new-session persistence guard
Keep two invariants covering empty create/cwd/save/fork, genuine content and existing-row metadata. Preserve original authorship and avoid source-only legacy pruning: an empty ACP row does not prove its owner is dead. Native ACP wire plus a local streaming model fixture verifies the first turn and nonempty fork remain durable.
2026-09-07 04:46:04 -07:00
Teknium d8a07768c5 fix(cli): keypad Alt+Enter inserts a newline instead of escape text
Slim rework of despotak's modified-keypad fix in #97290. Mirror existing
non-keypad mappings for modified keypad keys, including lock-state variants,
so Alt+keypad Enter reaches the existing newline handler rather than leaking
[57414;3u into the draft. Preserve installed twin mappings before consulting
pending aliases, matching first-writer-wins registration.

Replace the source PR's keyed branch ladder with a format table and verify
parser parity plus real buffer insertion with two invariant tests. Document
keypad multiline support in English and Chinese.

Live PTY: the exact doubled leak after a real collapsed paste reproduces on
main; all 21 editor cases pass with the fix, including ordinary Enter and
legacy Alt+Enter controls. Whitespace also reproduces on main: adjacent
characters are not the root cause.

Co-authored-by: Christos Despotakis <christos@despotak.is>
2026-09-07 02:09:34 -07:00
kshitij 5cffc57bc6 chore: author map for brucexu-eth (salvage of #104651) 2026-09-07 13:11:36 +05:30
Teknium 1cd9106eff chore: map contributor email for @Joeywrz 2026-09-06 13:18:19 -07:00
kshitijk4poor 758e33c28c chore: map contributor emails for the #96269/#102465 salvage 2026-09-07 01:09:00 +05:30
kshitijk4poor fee38b03cd chore: map GuardianZ71 contributor email for #104095 salvage 2026-09-07 00:42:18 +05:30
kshitijk4poor 8b07d809c4 chore: map PeaceMaker-best contributor email for #103710 salvage 2026-09-07 00:41:09 +05:30
kshitijk4poor 37a0c1b95f chore: map r3x443 contributor email for #103740 salvage 2026-09-07 00:39:44 +05:30
kshitijk4poor 57238b8507 chore: map YuYigeng contributor email for #103208 salvage 2026-09-07 00:38:37 +05:30
GodsBoy 5da6dcda5a test(compression): align checkpoint fixture and contributor mapping 2026-09-06 09:09:00 -07:00
kshitijk4poor 07ea974cc3 chore: map cdepuy contributor email for #100072 salvage 2026-09-06 20:49:30 +05:30
kshitijk4poor 11a333620a chore: map mengtanx contributor email for #103680 salvage 2026-09-06 20:47:52 +05:30
kshitijk4poor 1256cf52fe chore: map RHODIZSECURITY contributor email for #102454 salvage 2026-09-06 20:47:44 +05:30
Teknium 5106e939e0 fix(tui): heartbeat ticks share the /loop idle poll and rewind when no turn starts
Folds the /heartbeat driver into the existing /loop poll slot (one cadence, one
try/except table) and closes the consumed-tick gap: a dispatch that raises OR is
refused by _admit_prompt_turn (returns False) releases the session claim and rewinds
the persisted fire via HeartbeatManager.abandon_fire(), so the tick stays due for
the next poll instead of advancing fire_count with no turn. abandon_fire refuses to
overwrite a pause/resume/clear that landed between claim and dispatch (mirrors
LoopManager.abandon_tick). Tests use the real SessionDB under a temp HERMES_HOME and
drive the poller loop itself; docs note the TUI/Desktop surface.

Rollback-on-failure idea credited to jerrygooch (#104011, 51df1ed4d04 / 283fa972169);
the driver placement is Halldrix's (#102118). Reported in #102056 / #103044 (Vksh07).
2026-09-06 07:20:24 -07:00
Teknium e3a634a13c chore(contributors): map jerry@jerrygooch.com to jerrygooch 2026-09-06 07:18:28 -07:00
Teknium 67807e64a6 chore(contributors): map Xipong noreply email 2026-09-06 05:37:03 -07:00
Teknium 080422216f chore(contributors): map turingcat 2026-09-06 05:36:26 -07:00
Teknium c8cbc07030 test(mem0): setup module keeps post_setup when discovery imports the package first
The plugin loader execs sibling modules before the package __init__, so a
module-level `from . import _read_mem0_json` in _setup.py failed against the
empty parent shell and the whole module silently dropped out — every later
`hermes memory setup mem0` died with "cannot import name 'post_setup'".
The test loads mem0 through the real discovery path from a cold sys.modules
and asserts the cached _setup module exposes post_setup (red on base).

Also maps the contributor email for #103078 credit.

Campaign tracker: https://github.com/NousResearch/hermes-agent/issues/104154
2026-09-06 05:33:25 -07:00
kshitijk4poor 81f821657c chore: map contributor email for @koltyj
Attribution mapping so the cherry-picked #96187 commit resolves to its
GitHub account (@jonpol01 is already in the legacy map).
2026-09-06 15:40:05 +05:30
kshitijk4poor dd1d7475ca chore(contributors): map Collin.Snitchler@pm.me -> ColDSnit (PR #93869 salvage) 2026-09-06 14:47:11 +05:30
kshitijk4poor e3b6e40501 chore(contributors): map bounce12340 for the #102496 salvage 2026-09-06 14:37:30 +05:30
kshitijk4poor a483d7742f chore: map ruichenzhou@outlook.com to @Zhou-Ruichen (#77933 salvage) 2026-09-06 13:32:51 +05:30
kshitijk4poor 5284057770 chore: map contributor email for salvaged #101678 (StanleyStetson) 2026-09-05 20:44:51 +05:30
kshitijk4poor 935e10c20e chore: map contributor email for salvaged #44753 (dredozubov) 2026-09-05 19:06:57 +05:30
kshitijk4poor a2ff25a8b1 chore: map contributor email for salvaged #97265 (Liuzikaii) 2026-09-05 18:46:53 +05:30
kshitijk4poor 2a93bdaeba chore: map contributor email for salvaged #72429 (JonthanaHanh) 2026-09-05 18:46:16 +05:30