`CURRENT_INTERCEPTOR_ID` can default to empty string, which is falsy,
so the truthiness check skipped deletion. Now deprecated properties are
removed regardless of their stored value.
This removes the legacy `std/interceptors/` directory and associated
infrastructure in favor of the kernel-based interceptors introduced
earlier. The legacy system was kept around for backward compatibility
but is now fully superseded by `std/kernel-interceptors/`.
Closes FE-1061
The legacy interceptor system had parallel implementations for agent,
extension, and proxy interceptors that duplicated logic already present
in the kernel-based equivalents.
### What's removed
Legacy interceptor impls:
- `std/interceptors/agent/` (AgentInterceptorService, persisted-data, modals)
- `std/interceptors/extension.ts` (ExtensionInterceptorService)
- `std/interceptors/proxy.ts` (proxyInterceptor)
- `std/interceptors/helpers.ts` (preProcessRequest)
UI components:
- `components/interceptors/agent/` (RegistrationModal, RootExt, CA/Client cert modals)
- `components/interceptors/ExtensionSubtitle.vue`
- `components/interceptors/ErrorPlaceholder.vue` → moved to `components/settings/` with a few modifications
Service infra:
- `services/interceptor.service.ts` and it's tests
- `services/spotlight/searchers/interceptor.searcher.ts`
- `modules/interceptors.ts` module
- `platform/interceptors.ts` platform definition
- `platform/std/inspections/extension.inspector.ts` and tests
Mostly cleanup:
- Removed `CURRENT_INTERCEPTOR_ID` from `SettingsDef`
- Updated settings migration to delete legacy interceptor ID
- Removed from persistence validation schema
- Removed `agent.open-registration-modal` action since the legacy agent
registration flow is no longer used. The kernel-based agent interceptor
handles registration through its own service.
### What's kept/moved
The `ErrorPlaceholder.vue` component is still needed by kernel
interceptors, so it's moved to
`components/settings/InterceptorErrorPlaceholder.vue`
with imports updated across all interceptors.
The `preProcessRequest` helper from the legacy system is not needed
since kernel interceptors use `preProcessRelayRequest` from
`helpers/functional/process-request.ts`.
### Migration
Settings migration in `newstore/settings.ts` now:
- Deletes `EXTENSIONS_ENABLED` without migrating (legacy)
- Deletes `PROXY_ENABLED` without migrating (legacy)
- Deletes `CURRENT_INTERCEPTOR_ID` if present
Users on the legacy system will have their interceptor selection reset
to the platform default on first load. This is acceptable since the
kernel interceptor system has been the active path for some time so
there's little to no chance the legacy system still being in use.
### Notes to reviewers
The legacy `x25519.utils.randomPrivateKey()` issue mentioned in the
audit ticket doesn't need fixing since that code is being removed
entirely.
Testing should verify interceptor selection works in settings,
spotlight search for interceptors functions correctly, and that
no runtime errors occur from missing imports.
The maxAge option in Express's res.cookie() expects a duration in milliseconds, not an absolute timestamp. The previous code was adding `Date.now()` to the validity period, causing cookies to expire decades in the future instead of the intended 1 day / 7 days.
This was particularly problematic on macOS due to stricter cookie handling by Safari/WebKit.
Addresses #5818
Co-authored-by: njg7194 <njg7194@users.noreply.github.com>
- Cache and reuse a single `FaradayCage` WASM instance to avoid repeated allocations.
- Dispose `InspectionService` watchers via `effectScope` to prevent accumulation on tab switch.
- Use `Set` for environment variable key lookups in validation.
- Dispose Monaco editor models on component unmount.
The desktop shell was reading from `instance/hoppscotch-unified.store` while the webapp writes to `store/hoppscotch-unified.store`. This caused the app to lose track of the last connected instance on restart.
Closes FE-1121
Fixes collections with JSON comments failing in the CLI with `SerializationException` while working fine in the app, where comments are stripped before sending requests, but the CLI was sending them as-is, breaking APIs like AWS Cognito that expect valid JSON.
Adds `overflow-auto` to `HttpResponse` component to create a scroll container
that enables console entries to scroll when content exceeds viewport.
Removes unnecessary `overflow-y-auto` from `ConsolePanel` component since scrolling
is now handled at the `HttpResponse` level.
Fixes the console tab scrolling issue by following the same component-level
approach as PR #5695 (Settings/Profile scroll fix).
- Remove unused i18n keys (organizations, no_orgs, expand, collapse, status badges).
- Consolidate inactive org tooltips into single key.
- Simplify `multi_account_notice` text for clarity.
Extends the organization platform definition to support switching between multiple organizations and displaying custom branding (logo and name) in the application header. Adds shared utilities for file uploads and avatar generation, including deterministic colour support.
These changes enable the Cloud for Organizations tier to offer:
- Multi-organization switching via sidebar UI.
- Custom logo uploads for organization branding.
- Seamless navigation between different organization instances.