You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restore an explicit opt-in for outbound fleet-calibration telemetry to fix a confidentiality/privacy regression that made Orb export active by default when the GitHub App key was present.
Update documentation and tests to make the opt-in behavior clear and to prevent regressions.
Description
Require a truthy ORB_ENABLED env flag before exportOrbBatch will send telemetry by adding a ORB_ENABLED truthy check at the top of exportOrbBatch in src/selfhost/orb-collector.ts.
Update the runtime comment in src/server.ts to no longer advertise always-on telemetry (Orb is gated by exportOrbBatch/ORB_ENABLED).
Update .env.example to document the opt-in behavior and add ORB_ENABLED=false as the default documented setting.
Add regression coverage in test/unit/selfhost-orb-collector.test.ts that asserts export is suppressed when ORB_ENABLED is unset or set to falsey values, and adjust tests to explicitly opt in where needed.
Testing
Unit tests: ran npx vitest run test/unit/selfhost-orb-collector.test.ts and the test file passed (16/16 tests).
Typecheck: ran npm run typecheck (tsc --noEmit) and it completed without errors.
Coverage: attempted npm run test:coverage for the affected test but V8 coverage remapping failed locally due to a dependency version mismatch (ast-v8-to-istanbul / js-tokens), so full coverage run was blocked by the local coverage tool error.
Dependency audit: npm audit --audit-level=moderate could not complete due to the registry audit endpoint returning 403 Forbidden.
Closing — this reverts a deliberate product decision. Orb telemetry is hardwired on by design (#1257): the self-hosting contract is "install the App, your instance reports anonymized fleet-calibration signal," with no opt-in flag. The privacy posture is already: HMAC anonymization with a dedicated per-instance secret the collector can never reverse, an explicit TELEMETRY NOTICE in .env.example, ORB_AIR_GAP=true as the offline opt-out, and the #1274 registration gate (an instance's data doesn't even count toward the fleet until an operator registers it). Re-introducing ORB_ENABLED opt-in would undo all of that. If we ever want to revisit opt-in vs opt-out as a policy, that's a product call to make deliberately — not via an auto-generated revert. Reopen if that's the intent.
✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.04%. Comparing base (480f2c3) to head (c746313). ⚠️ Report is 7 commits behind head on main.
✅ All tests successful. No failed tests found.
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
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.
Motivation
Description
ORB_ENABLEDenv flag beforeexportOrbBatchwill send telemetry by adding aORB_ENABLEDtruthy check at the top ofexportOrbBatchinsrc/selfhost/orb-collector.ts.src/server.tsto no longer advertise always-on telemetry (Orb is gated byexportOrbBatch/ORB_ENABLED)..env.exampleto document the opt-in behavior and addORB_ENABLED=falseas the default documented setting.test/unit/selfhost-orb-collector.test.tsthat asserts export is suppressed whenORB_ENABLEDis unset or set to falsey values, and adjust tests to explicitly opt in where needed.Testing
npx vitest run test/unit/selfhost-orb-collector.test.tsand the test file passed (16/16 tests).npm run typecheck(tsc --noEmit) and it completed without errors.npm run test:coveragefor the affected test but V8 coverage remapping failed locally due to a dependency version mismatch (ast-v8-to-istanbul/js-tokens), so full coverage run was blocked by the local coverage tool error.npm audit --audit-level=moderatecould not complete due to the registry audit endpoint returning403 Forbidden.Codex Task