perf(server): narrow App Server feature closures - #2028
Open
limityan wants to merge 1 commit into
Open
Conversation
limityan
force-pushed
the
yanzhn/server-app-feature-closure-pr17
branch
3 times, most recently
from
August 4, 2026 14:32
f5fc007 to
46d88d6
Compare
Replace product-full with reviewed runtime owner features, preserve paused Server sources behind a source-check profile, and gate workspace startup side effects behind Runtime ownership.
limityan
force-pushed
the
yanzhn/server-app-feature-closure-pr17
branch
from
August 4, 2026 15:43
46d88d6 to
04b8674
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
bitfun-core/product-fullwith the reviewedagent-runtimeowner closure;product-fullclosure withagent-runtime,ssh-remote, while keeping the inactive dispatch/external-source sources compilable only through the non-defaultpaused-web-server-source-checkprofile;host_capability_unavailableresponses for the exact external-source and external-Hook command set, and keep WebSocket Ping/Pong from terminating the JSON-RPC stream;tsand Server default/source-check direct and transitive feature closures with the existing repository boundary checker.Dependency impact
Counts use the same Windows
cargo tree --locked -e normal,buildunique-node method. They describe graph size, not a fixed wall-clock guarantee. The four direct optional dependencies needed by inactive Server sources are enabled only by source-check; the default profile does not activate them. No new CI job or Cargo[[test]]target is added. The existing cross-platform file-watch step keeps the same target and matrix; it only gains a five-minute step timeout so a stalled native watcher produces a bounded failure instead of occupying the runner for the workflow-wide timeout.Workspace behavior
--workspace: authoritative local input; validation, ownership, or open failure stops startup and never selects a different directory;Validation
cargo check -p bitfun-servercargo test -p bitfun-server(10/10)cargo test -p bitfun-server --features paused-web-server-source-check(20/20)cargo test -p bitfun-app-server(unit, integration, and doctests)cargo test -p bitfun-services-core --no-default-features --features runtime-ownership --test runtime_ownership_contracts(4/4)node --test scripts/check-core-boundaries.test.mjs(71/71)node scripts/check-core-boundaries.mjspnpm run check:repo-hygienepnpm run check:github-config(8/8)git diff --check gcwing/main HEADCI diagnostic note
The replacement run for the prior head (
30919504209) passed 6/7 jobs, including the macOS path that had failed deterministically before. Its Windows job compiled the existing file-watch target in 7.97 seconds and completed 8/9 cases, thenfile_watch_publishes_debounced_batches_to_backend_subscribersstopped making progress for more than 30 minutes. The run was cancelled to obtain the otherwise unavailable in-progress log; it was not rerun to hide the stall.The incident is localized to an existing Windows native-watcher lifecycle path, but current evidence does not distinguish registration, timeout unwind, and teardown. The PR therefore does not claim a production root-cause fix or serialize away multi-watcher coverage. It only bounds the existing CI step at five minutes and locks that policy in the existing GitHub configuration contract. A recurrence remains a diagnostic failure that requires hang/thread-state evidence.
Adversarial review
Two independent rounds reviewed runtime ownership/behavior and dependency/API/transport boundaries. Findings fixed before submission:
tsclosure simulation so an additive strongest profile cannot hide default dependency leakage;The final follow-up review found no remaining P0-P3 issue. Broad workspace test suites were intentionally not added to local or CI validation.