Commit Graph

4934 Commits

Author SHA1 Message Date
diegosouzapw
bff01d6fe3 feat(i18n): deep-merge EN fallback to fill missing locale keys (B/G1)
Export deepMergeFallback and apply it in getRequestConfig so all 39
non-EN locales receive EN text for any key absent in their JSON file.
Locale-specific translations always win; EN fills gaps only.
2026-05-28 12:13:59 -03:00
diegosouzapw
566ebb9531 feat(i18n): add playground + search-tools keys (PT-BR + EN)
Add 60 new playground.* keys and 50 new search.* keys to en.json and
pt-BR.json covering Playground Studio tabs (Chat/Compare/API/Build),
config pane, param sliders, presets, improve prompt, export, compare
metrics (TTFT/TPS), Build tab (tools/structured output), and Search Tools
Studio tabs (Search/Scrape/Compare), SearchConceptCard, ProviderCatalog,
ScrapeResult, and config pane fields.

PT-BR has full Portuguese translations. EN has EN strings.
2026-05-28 11:58:33 -03:00
diegosouzapw
f8bf164180 feat(memory): implement F7 Studio UI layer for /dashboard/memory
Converts the monolithic memory page into a 3-tab Studio layout
(Memories | Playground | Engine) with URL-driven tab state, 8 new
React components, 2 SWR hooks, 50+ i18n keys, and 8 Vitest unit tests
covering all new components (45/45 passing).
2026-05-28 11:55:18 -03:00
diegosouzapw
2f3cbdb9fe merge(fix3): wire useTranslations in Traffic Inspector components (Group A) 2026-05-28 11:40:29 -03:00
diegosouzapw
f37148903d merge(fix2): system proxy revert on page exit (Group A) 2026-05-28 11:38:13 -03:00
diegosouzapw
699053fe80 merge(fix1): addDNSEntry generic for dynamic custom hosts (Group A) 2026-05-28 11:38:12 -03:00
diegosouzapw
8dbc3ae551 feat(i18n): wire useTranslations in Traffic Inspector components (fix3)
Convert CaptureModesToolbar, TopBarControls, CustomHostsManager,
HttpProxySnippetCard and SessionRecorderBar to consume useTranslations
instead of hardcoded English strings. Add 7 missing trafficInspector
keys (customHostsTitle, loading, copied, copy, httpProxyTitle,
notRecording, anyStatus) to both en.json and pt-BR.json.
2026-05-28 11:36:02 -03:00
diegosouzapw
630572c394 Merge branch 'feat/playground-search-i18n-docs-F9' into chore/playground-search-audit-F10 2026-05-28 11:27:18 -03:00
diegosouzapw
953f795b15 Merge branch 'feat/search-tools-ui-F8' into chore/playground-search-audit-F10 2026-05-28 11:27:15 -03:00
diegosouzapw
8526e5e4c3 Merge branch 'feat/playground-ui-advanced-F7' into chore/playground-search-audit-F10 2026-05-28 11:27:13 -03:00
diegosouzapw
c86fb0b5a2 Merge branch 'feat/playground-ui-core-F6' into chore/playground-search-audit-F10 2026-05-28 11:27:09 -03:00
diegosouzapw
6563fd578e Merge branch 'feat/playground-hooks-F5' into chore/playground-search-audit-F10 2026-05-28 11:27:06 -03:00
diegosouzapw
2eb20fa3cd Merge branch 'feat/search-providers-catalog-F4' into chore/playground-search-audit-F10 2026-05-28 11:27:02 -03:00
diegosouzapw
fb87dcf493 Merge branch 'feat/playground-api-F3' into chore/playground-search-audit-F10 2026-05-28 11:27:00 -03:00
diegosouzapw
061260ec3e Merge branch 'feat/playground-search-db-F2' into chore/playground-search-audit-F10 2026-05-28 11:26:57 -03:00
diegosouzapw
c658602d20 Merge branch 'feat/playground-search-foundation-F1' into chore/playground-search-audit-F10 2026-05-28 11:26:54 -03:00
diegosouzapw
69dfc5e2d2 Merge branch 'feat/search-tools-ui-F8' into feat/playground-search-i18n-docs-F9 2026-05-28 11:26:20 -03:00
diegosouzapw
7b744c0798 Merge branch 'feat/playground-ui-advanced-F7' into feat/playground-search-i18n-docs-F9 2026-05-28 11:26:17 -03:00
diegosouzapw
604cb60d2e Merge branch 'feat/playground-ui-core-F6' into feat/playground-search-i18n-docs-F9 2026-05-28 11:26:14 -03:00
diegosouzapw
8af0c8d36f Merge branch 'feat/search-providers-catalog-F4' into feat/playground-search-i18n-docs-F9 2026-05-28 11:26:14 -03:00
diegosouzapw
3d0bebff50 Merge branch 'feat/playground-api-F3' into feat/playground-search-i18n-docs-F9 2026-05-28 11:26:10 -03:00
diegosouzapw
5e51436ff3 test(mitm/api): coverage for dynamic DNS entries (fix1) 2026-05-28 11:23:52 -03:00
diegosouzapw
8e518ae008 feat(api): wire DNS propagation for traffic-inspector custom hosts (fix1) 2026-05-28 11:23:48 -03:00
diegosouzapw
785f8e4117 feat(mitm): parameterize addDNSEntry/removeDNSEntry for dynamic hosts (fix1) 2026-05-28 11:23:45 -03:00
diegosouzapw
3d65f87f63 test(ui): system proxy exit guard hook (fix2) 2026-05-28 11:21:18 -03:00
diegosouzapw
9cc85f4864 feat(i18n): add system proxy exit warning string (fix2) 2026-05-28 11:21:13 -03:00
diegosouzapw
bdd65cdd5e feat(ui): system proxy exit guard via beforeunload + sendBeacon (fix2) 2026-05-28 11:21:09 -03:00
diegosouzapw
9c475f0a25 test(playground): UI coverage for advanced tabs + modals 2026-05-28 11:20:32 -03:00
diegosouzapw
e7e16b416d feat(playground): wire F7 components into Studio shell 2026-05-28 11:20:27 -03:00
diegosouzapw
d516cf0506 feat(playground): add PresetPicker + ImprovePromptButton 2026-05-28 11:20:23 -03:00
diegosouzapw
6e15911f1e feat(playground): add ToolsBuilder + StructuredOutputEditor 2026-05-28 11:20:17 -03:00
diegosouzapw
58aa0b5040 feat(playground): add ExportCodeModal 2026-05-28 11:20:13 -03:00
diegosouzapw
331cc68e45 feat(playground): add BuildTab with tools + structured output 2026-05-28 11:20:10 -03:00
diegosouzapw
05a0dceba7 feat(playground): add CompareTab with parallel streams + metrics 2026-05-28 11:20:06 -03:00
diegosouzapw
52d733946d fix(translator): restore scrollIntoView for ver-JSON/ver-pipeline UX
After GAP-5 removed the data-advanced-section placeholder div, clicking 'ver JSON'
or 'ver pipeline' in ResultNarrated would open the accordion via URL state but
not scroll to it. Restore by adding id='translator-advanced-section' to the
AdvancedSection root and using getElementById + scrollIntoView (with rAF defer
so React commits the open state first).
2026-05-28 11:15:46 -03:00
diegosouzapw
e20330af69 feat(translator): lift useTranslateSession to shell + connect PipelineView to real result
- Move useTranslateSession() to TranslatorPageClient (shell level) for PipelineView to receive real steps
- Build PipelineStep[] from session result (detected/intermediate/translated/response)
- Pass session as prop down to TranslateTab; internal hook kept for isolated test compatibility
- Dedup useProviderOptions: only TranslateTab calls the hook, props pass to SimpleControls
- Remove unused data-advanced-section/data-input-text placeholder (DOM data leak GAP-5)
- Add aria-expanded + aria-controls to AutoFeaturesCard toggle (a11y GAP-2)

Addresses code review RISCO-4, GAP-2, GAP-3, GAP-5.
2026-05-28 11:08:36 -03:00
diegosouzapw
cc243a9d47 fix(memory): defensive markNeedsReindex + drain setImmediate in legacy tests
- store.ts: wrap markMemoryNeedsReindex in safeMarkNeedsReindex helper that swallows
  errors when the DB is no longer available (e.g. test teardown after the parent
  promise resolved). Prevents fire-and-forget vector upserts from triggering
  unhandledRejection in tests.
- memory-store.test.ts: drain setImmediate in afterEach/after hooks so pending
  vector upsert tasks settle before DATA_DIR is removed.
- memory-settings.test.ts: extend deepEqual expected shape with the 7 new fields
  introduced by plan 21 F5 (embeddingSource, embeddingProviderModel,
  transformersEnabled, staticEnabled, rerankEnabled, rerankProviderModel,
  vectorStore).
2026-05-28 11:02:25 -03:00
diegosouzapw
6435a3376d merge(F6): backend REST routes (memory + settings/qdrant) 2026-05-28 11:02:16 -03:00
diegosouzapw
7e0c58b5cb feat(memory): add F6 backend REST routes for memory engine redesign (plan 21)
New routes:
- POST /api/memory/retrieve-preview (dry-run playground)
- GET  /api/memory/embedding-providers
- GET  /api/memory/engine-status
- POST /api/memory/summarize
- POST /api/memory/reindex
- GET/PUT /api/settings/qdrant
- GET /api/settings/qdrant/health
- POST /api/settings/qdrant/search
- POST /api/settings/qdrant/cleanup

Modified:
- PUT /api/memory/[id] added (Hard Rule #12 sanitize)
- /api/memory/route.ts: Hard Rule #12 fix (sanitizeErrorMessage)
- /api/settings/memory/route.ts: MemorySettingsExtendedSchema (D9 7 new fields)

Tests: 7 integration test files (33 tests total) all passing.
Hard Rules #5, #7, #8, #12 verified.
2026-05-28 10:53:55 -03:00
diegosouzapw
44709df885 fix(translator): sanitize TestBench errors + add OpenAI hub node + cancel SSE reader
- TestBenchAccordion now sanitizes upstream stack traces (Hard Rule #12)
- TranslateFlowDiagram renders 4-node flow (app -> source -> hub -> target) per spec
- useTranslateSession cancels SSE reader in finally to avoid connection leaks

Addresses code review BUG-1, GAP-1, BUG-2.
2026-05-28 10:45:37 -03:00
diegosouzapw
d899a30777 merge: F10 audit + docs + E2E + final validation 2026-05-28 10:45:01 -03:00
diegosouzapw
3c2022a13d fix(batch): final gaps — expired_with_failures badge + remove retry cost TBD placeholder (G-NEW1, G-NEW2) 2026-05-28 10:44:45 -03:00
diegosouzapw
fd9c9e0f4c chore(orchestration): finalize Group B audit report (B/F10) 2026-05-28 10:42:47 -03:00
diegosouzapw
b1d07a1604 test(e2e): add group-B specs (activity feed, quota-share, plans config, logs/activity redirect) (B/F10) 2026-05-28 10:42:36 -03:00
diegosouzapw
da1c4fecd9 docs(reference): add openapi paths for /api/quota and audit-log level (B/F10) 2026-05-28 10:42:30 -03:00
diegosouzapw
2b0a92d5f5 docs(architecture): update REPOSITORY_MAP for quota + activity + audit lib (B/F10) 2026-05-28 10:42:26 -03:00
diegosouzapw
9f1fbdebf5 docs(architecture): add MONITORING_SECTIONS.md (B/F10) 2026-05-28 10:42:21 -03:00
diegosouzapw
919043a049 docs(quota): add QUOTA_SHARE.md (algorithm + drivers + UI + env) (B/F10) 2026-05-28 10:42:17 -03:00
diegosouzapw
5b56704538 fix(quota): audit-discovered stale eslint-disable in planResolver + sidebar-costs-section test drift (B/F10) 2026-05-28 10:42:12 -03:00
diegosouzapw
53754ae93c merge(F10): audit report + sourceModel fix(F3) (Group A) 2026-05-28 10:26:03 -03:00