- Introduce
safeRunhelper for sync/async fallbacks- What: Centralize repetitive
try/catchguard patterns. - Why: Reduce duplication and keep behavior consistent.
- How: Add
src/core/safeRun.tsand replace repeated guarded blocks.
- What: Centralize repetitive
- Remove non-null assertion in
src/core/eventBus.ts- What: Eliminate
set!usage in unsubscribe path. - Why: Keep lint output clean and improve safety.
- How: Capture stable local reference and guard before delete.
- What: Eliminate
- Replace
new Array(capacity)in ring buffer- What: Avoid lint warning in
src/domains/performance/logger.ts. - Why: Keep quality gate warning-free.
- How: Use
Array.from({ length: capacity })or equivalent typed init.
- What: Avoid lint warning in
- Implement actual route discovery pipeline
- What: Populate
RoutesState.routesfrom project/app sources. - Why: Current routes tab is mostly placeholder.
- How: Add discovery adapter(s), call
parseRoutes, handle errors/loading states.
- What: Populate
- Implement link extraction + validation integration
- What: Populate
LinksState.linksand diagnostics. - Why: Current links tab is mostly placeholder.
- How: Extract links from source, validate via
validateLinks, publish results.
- What: Populate
- Wire
props.providers?.aiinto bootstrap/runtime- What: Use configured AI provider in perf analysis.
- Why: Current bootstrap sets
aiProvidertoundefined. - How: Add provider factory + adapter resolution and inject into
createPerfDomain.
- Implement persistence in Next route handler
- What:
createLogHandlershould store events, not only count them. - Why: Needed for historical analysis and external integrations.
- How: Add storage abstraction and write path with validation + failure handling.
- What:
- Render actual right-rail content in
Shell- What: Pass
childrenrenderer intoRightRail. - Why: Current rail largely acts as icon strip without contextual content.
- How: Map panel id -> panel presenter and render domain-specific side content.
- What: Pass
- Review
systemtheme resolution behavior- What: Verify dark/light system mapping semantics.
- Why: Current logic defaults system to dark in shell token resolution.
- How: Resolve via media query source of truth and keep tokens synchronized.
- Move internal-heavy exports to dedicated advanced subpath
- What: Keep root export focused on stable public contract.
- Why: Better semver safety and lower cognitive load.
- How: Introduce
@remcostoeten/dev-widget/internaland migrate internal type exports.
- Add declaration map/source map distribution policy
- What: Decide whether to ship
.d.ts.mapand source maps. - Why: Better go-to-definition/debugging in consumer editors.
- How: Configure tsup/tsconfig emit and include required files in package.
- What: Decide whether to ship
- Add lifecycle tests for runtime and domains
- What: Test
start/stop, event publishing, and reset flows. - Why: Current coverage is low and misses critical behavior.
- How: Add focused Bun tests alongside domain/runtime modules.
- What: Test
- Test better-auth/cookie/jwt providers and next/tauri adapters
- What: Validate environment-conditional and edge-case behavior.
- Why: Adapter/provider behavior drives integration reliability.
- How: Mock browser/server globals and assert typed outputs/fail paths.
- Add CI step for npm artifact validation
- What: Validate
npm pack --dry-runin CI before release publish. - Why: Prevent accidental bad tarball release.
- How: Add dedicated job/check in
.github/workflows/ci.ymland release workflow.
- What: Validate