Lazy route/feature chunks have drifted from 151 (Mar consolidation) back
to 251, tripping the 250 total-count gate in budget.json. Resource count
is a coarse tripwire on HTTP/2 (size + timing budgets guard real perf);
bump with headroom rather than chasing every +1. Align the duplicate
.lighthouserc total.count (was a stale 220 warn) to the same 300.
* feat(plugins): migrate Gitea and Linear issue providers to plugins
* feat(plugins): localize Gitea issue provider config form
Port the existing Gitea translations (F.GITEA.* + shared issue-content keys)
into the plugin's own i18n so non-English users keep localized config labels
after the plugin migration. Generated for all 28 app locales.
* docs(plugins): note Linear teamId/projectId filter is now active
The built-in Linear provider defined teamId/projectId config fields but never
passed them to the search, so they were inert. The plugin honors them as the
field labels promise; document this as a deliberate behavior change.
* test(issue): fix unknown casts in issue-provider migration spec
The spec compiled clean under the app tsconfig (which excludes *.spec.ts)
but failed CI's tsconfig.spec.json build: casting state.entities[id]
(IssueProvider | undefined) straight to Record<string, unknown> is a
TS2352 non-overlap error, and .toBe(already) on a bare literal is a
TS2345. Add the intermediate 'as unknown' so the spec type-checks.
* ci(lighthouse): raise total resource-count budget to 260
Migrating the Gitea and Linear issue providers to bundled plugins adds
two more entries to BUNDLED_PLUGIN_PATHS. Each bundled plugin is
discovered at startup, fetching its manifest.json plus icon.svg, which
pushed the Lighthouse total request count to 251, one over the previous
250 budget. The increase is an inherent, accepted consequence of the
built-in -> bundled-plugin migration (same as github/clickup); bump the
budget to 260 to reflect the new baseline with modest headroom.
App-state selectors crashed during test teardown when the feature store
was unregistered. Lighthouse resource count budgets increased for the
new deadline feature chunks (scripts 170→200, total 220→250).
Group individual loadComponent routes into fewer lazy chunks:
- Tag + project sub-routes share one chunk via context.routes.ts
using loadChildren with static component imports
- Standalone pages share one chunk via pages.routes.ts barrel
re-export with loadComponent importing from same module
- Use canActivateChild for FocusOverlayOpenGuard so it re-fires
when navigating between child routes within the same context
Lighthouse resource budgets updated to match new chunk count.
The font budget was set to 260KB before the Material Icons to Material
Symbols upgrade. Material Symbols font is ~456KB, causing Lighthouse CI
to fail. Increase budget to 520KB to accommodate the larger font with
headroom for future updates.