docling-studio/frontend
Pier-Jean Malandrino 7351159eeb feat(#210): feature-flag mode gating + deep-link redirect
Backend
- HealthResponse exposes inspectModeEnabled / chunksModeEnabled /
  askModeEnabled (additive; defaults true). main.py /api/health
  populates them from settings.
- infra/settings.py: three new env-var-driven booleans (defaults true)
  parsed in from_env() like the existing reasoning_enabled flag.
- tests/test_api_endpoints.py: extra assertion that /api/health
  surfaces the three new fields with their defaults.

Frontend — flag store
- features/feature-flags/store.ts: FeatureFlag union extended with
  inspectMode / chunksMode / askMode. New entries in featureRegistry
  are gated on context fields populated from health. Missing fields
  fall back to true so a frontend pointed at an older backend keeps
  every mode visible.
- store gains a modeFlags() helper returning Record<DocMode, boolean>
  so the routing guard does not need to know the FeatureFlag union.

Frontend — routing
- shared/routing/resolveMode.ts: pure resolver. If the requested mode
  is enabled, return it; else first enabled in priority ask > chunks
  > inspect; else null.
- app/router/index.ts: beforeEach guard scoped to ROUTES.DOC_WORKSPACE.
  Disabled mode → rewrite ?mode= to the first enabled one. All three
  off → redirect to /docs?reason=no-mode-enabled.

Frontend — flash
- pages/DocsLibraryPage.vue: shows a banner when ?reason=no-mode-enabled
  is set. #211 will move this into the proper library page banner.
- i18n flags.allModesDisabled added in fr + en.

Tests
- shared/routing/resolveMode.test.ts (6 cases): every (requested,
  enabled) combination including all-disabled, priority order,
  missing requested.
- features/feature-flags/store.test.ts: three new cases covering the
  new fields in /api/health, fall-back-to-true on missing fields, and
  modeFlags() shape.

Refs #210
2026-04-29 17:53:55 +02:00
..
public Update logo with final version 2026-04-02 17:28:22 +02:00
src feat(#210): feature-flag mode gating + deep-link redirect 2026-04-29 17:53:55 +02:00
.prettierignore Add qualityt check and contributing doc 2026-03-21 15:34:54 +01:00
.prettierrc Add qualityt check and contributing doc 2026-03-21 15:34:54 +01:00
Dockerfile Refacto and add cp paste btn 2026-03-21 15:03:10 +01:00
env.d.ts feat(reasoning): reasoning-trace viewer v1 with SQLite-backed graph 2026-04-29 14:00:00 +02:00
eslint.config.js fix: resolve CI warnings (Node.js 20 deprecation + ESLint formatting) 2026-04-08 14:54:56 +02:00
index.html Add logo across navbar, home hero, studio, and favicon 2026-04-02 17:11:31 +02:00
nginx.conf fix: limit upload to 5 MB / 20 pages max and increase conversion timeout 2026-04-07 10:56:16 +02:00
package-lock.json feat(reasoning): live docling-agent runner + UX polish 2026-04-29 14:00:00 +02:00
package.json chore(release): cut 0.5.0 — bump frontend version + complete CHANGELOG 2026-04-29 14:00:00 +02:00
tsconfig.json Migrate frontend in typescript 2026-03-21 15:58:43 +01:00
vite.config.js Add release process, dynamic versioning, and changelog catch-up 2026-04-02 16:08:37 +02:00