Problem: Obfuscation tracking sends JSON.stringify(settings) in activity metadata. This can be large and leaks user's obfuscation preferences into analytics.
Fix: Either omit detail entirely or send a hash/summary (e.g. { profileName, settingsHash }) instead of the full settings object.
Acceptance criteria:
Activity metadata payload doesn't contain full settings JSON
Sufficient signal retained for analytics (e.g. profile/preset name)
Bundle size of metadata field bounded
**Severity:** Medium (privacy/perf)
**File:** `spikersoft-angular/libraries/tools/src/components/quick-type/quick-type.component.ts` (~734)
**Problem:** Obfuscation tracking sends `JSON.stringify(settings)` in activity metadata. This can be large and leaks user's obfuscation preferences into analytics.
**Fix:** Either omit detail entirely or send a hash/summary (e.g. `{ profileName, settingsHash }`) instead of the full settings object.
**Acceptance criteria:**
- [ ] Activity metadata payload doesn't contain full settings JSON
- [ ] Sufficient signal retained for analytics (e.g. profile/preset name)
- [ ] Bundle size of metadata field bounded
Added summarizeObfuscationSettings(settings) private helper. It walks the boolean flags on the settings object and returns:
{ enabledCount: number, totalToggles: number, enabled: string[/* up to 12 names */] }
The obfuscate tracking call now passes that summary instead of JSON.stringify(settings). The full settings object never leaves the client; metadata is bounded.
**Resolved.**
Added `summarizeObfuscationSettings(settings)` private helper. It walks the boolean flags on the settings object and returns:
```
{ enabledCount: number, totalToggles: number, enabled: string[/* up to 12 names */] }
```
The obfuscate tracking call now passes that summary instead of `JSON.stringify(settings)`. The full settings object never leaves the client; metadata is bounded.
File: `spikersoft-angular/libraries/tools/src/components/quick-type/quick-type.component.ts`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Severity: Medium (privacy/perf)
File:
spikersoft-angular/libraries/tools/src/components/quick-type/quick-type.component.ts(~734)Problem: Obfuscation tracking sends
JSON.stringify(settings)in activity metadata. This can be large and leaks user's obfuscation preferences into analytics.Fix: Either omit detail entirely or send a hash/summary (e.g.
{ profileName, settingsHash }) instead of the full settings object.Acceptance criteria:
Resolved.
Added
summarizeObfuscationSettings(settings)private helper. It walks the boolean flags on the settings object and returns:The obfuscate tracking call now passes that summary instead of
JSON.stringify(settings). The full settings object never leaves the client; metadata is bounded.File:
spikersoft-angular/libraries/tools/src/components/quick-type/quick-type.component.ts.