Skip to content

Fix install paths and add opt-in observability - #4

Draft
postrv wants to merge 5 commits into
mainfrom
cursor/install-observability-43ef
Draft

postrv wants to merge 5 commits into
mainfrom
cursor/install-observability-43ef

Conversation

@postrv

@postrv postrv commented Sep 10, 2026 •

Copy link
Copy Markdown
Owner

Fixes the remaining Ubuntu CI failures on this branch (Test (ubuntu-latest) and Minimal build).

child_process_stash_put_get_through_ipc was not a missing #[serial] problem. The four tests that looked concurrent were waiting on the serial lock while the stash test held it for the full 300s sandbox timeout.

Cause: the worker registered IPC waiters on an async channel. A fast parent StashResult (same race for tool/resource results) could be read before the waiter was inserted, so the oneshot never fired.

Fix: insert waiters into a mutex map before the request is written. Added child_process_stash_many_roundtrips_through_ipc (32 put/get pairs) to keep the race from coming back.

Also in this PR (unchanged intent):

  • npm PATH shims and forgemax-worker on cargo install
  • opt-in observability HTTP (/health, /ready, /metrics) and JSON logs
  • SECURITY.md contact
  • anyhow 1.0.104 / rmcp 1.8 advisory lockfile bumps

Does not change dispatcher trait signatures or DispatchError variants. Existing forge.toml still parses. Homebrew tap postrv/homebrew-forgemax is a separate repo and stays on 0.5.0 until that tap is updated.

Open in Web Open in Cursor 

cursoragent and others added 5 commits September 10, 2026 21:16
npm global installs now ship JS PATH shims (native binaries go to vendor/),
cargo install forgemax builds forgemax-worker, and worker discovery finds
.forgemax-worker.exe on Windows. SECURITY.md names GitHub PVR and a
maintainer email. Optional [observability] serves /health and /metrics and
supports JSON logs without changing dispatcher traits or existing TOML.

Co-authored-by: postrv <postrv@users.noreply.github.com>
Remove accidental #[test] duplication on new unit tests. Replace a
no-arg format! in forge-test-server so clippy -D warnings stays clean
on current stable.

Co-authored-by: postrv <postrv@users.noreply.github.com>
Gate observability metrics types so --no-default-features compiles.
Bump anyhow to 1.0.104 (RUSTSEC-2026-0190) and rmcp to 1.8.0
(RUSTSEC-2026-0189) within existing semver ranges.

Co-authored-by: postrv <postrv@users.noreply.github.com>
Co-authored-by: postrv <postrv@users.noreply.github.com>
Register IPC waiters in a mutex map before writing the request so a
fast parent StashResult cannot arrive before the oneshot exists.
The previous async-channel registration dropped the response and left
child_process_stash_put_get_through_ipc in the 300s sandbox timeout.

Co-authored-by: postrv <postrv@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants