Commit Graph

4934 Commits

Author SHA1 Message Date
diegosouzapw
269fce6f0b feat(batches): add pure helpers — csvToJsonl, validateJsonl, costEstimator, retryFailed (F2) 2026-05-27 19:42:51 -03:00
diegosouzapw
ddf6b0ef63 merge(F2): DB migrations + modules into Group A parent 2026-05-27 19:41:11 -03:00
diegosouzapw
648415d4cf merge(F1): shared foundation into Group A parent 2026-05-27 19:41:10 -03:00
diegosouzapw
97d607e7c5 test(mitm/inspector): unit tests for F1 foundation utilities
83 tests across 7 files: mitm-masksecrets (9), mitm-passthrough (10),
mitm-upstream-trust (5), inspector-kind-detector (14), inspector-context-key (11),
inspector-types (11), shared-schemas (23). All green.
2026-05-27 19:39:37 -03:00
diegosouzapw
96b6000f40 feat(schemas): add agentBridge/inspector Zod schemas (F1)
- AgentBridgeStateRow/Mapping/Bypass/ServerAction/Dns/MappingPut/BypassUpsert/UpstreamCaPost schemas
- InspectorCustomHost/SessionStart/SessionPatch/CaptureModeAction/SystemProxy/TlsInterceptToggle/AnnotationPut/ListQuery schemas
2026-05-27 19:39:32 -03:00
diegosouzapw
411a6d85d1 feat(inspector): add types, contextKey, kindDetector (F1)
- InterceptedRequest/LlmMetadata/WsEvent types + InterceptedRequestSchema
- extractSystemPrompt() supports OpenAI/Anthropic/Gemini formats
- computeContextKey() returns 12-hex SHA-256 of system prompt
- detectKind() classifies traffic via 18 host patterns + path + body + UA
- src/lib/inspector/secretMask.ts re-exports maskSecret (plano 12 bridge)
2026-05-27 19:39:26 -03:00
diegosouzapw
898f2f21c4 feat(mitm): add types, masking, passthrough, upstream-trust (F1)
- MitmTarget/AgentId types + MitmTargetSchema (Zod) in src/mitm/types.ts
- maskSecret() with pre-compiled BEARER/SK_KEY/LONG_TOKEN patterns
- sanitizeHeaders() using isForbiddenUpstreamHeaderName denylist + masking
- shouldBypass()/globMatch() — ReDoS-safe string split (no runtime RegExp)
- configureUpstreamCa() sets undici global dispatcher; safe error message (Hard Rule #12)
2026-05-27 19:39:18 -03:00
diegosouzapw
ae0941464f feat(translator): add F1 foundation types, hooks, and i18n keys
- types.ts: FormatId, TranslatorTab, TranslateMode, AdvancedSlug, TranslateDeepLink, TranslateNarratedResult, AdvancedAccordionProps, ExampleTemplate
- useTranslateDeepLink hook (URL ?tab/mode/advanced enum-validated parsing + setTab/setMode/setAdvanced)
- useTranslateSession hook (detect+translate+send orchestration with sanitized errors)
- 52 new i18n keys (en + pt-BR) under namespace 'translator' (ADD-only, no old keys removed)
- 3 unit test files: deeplink (32 tests), session (10 tests), i18n-keys (138 tests)
2026-05-27 19:38:34 -03:00
diegosouzapw
3c50ebce8f merge: F2 DB migrations + modules (pools, consumption, plans) 2026-05-27 19:25:12 -03:00
diegosouzapw
282bffcea7 merge: F1 shared foundation (types, schemas, audit allowlist, plan registry) 2026-05-27 19:25:12 -03:00
diegosouzapw
80fa37f30f test(db): unit tests for F2 modules 2026-05-27 19:24:30 -03:00
diegosouzapw
47c0dce062 chore(env): document AgentBridge + Inspector env vars and re-exports (F2) 2026-05-27 19:24:26 -03:00
diegosouzapw
9fcfc2bd0b feat(db): add inspector custom hosts + sessions CRUD modules (F2) 2026-05-27 19:24:22 -03:00
diegosouzapw
45f602606b feat(db): add agentBridge state/mappings/bypass CRUD modules (F2) 2026-05-27 19:24:19 -03:00
diegosouzapw
89d3304a93 feat(db): add migrations 073/074/075 agent_bridge + inspector (F2) 2026-05-27 19:24:14 -03:00
diegosouzapw
bf764dc529 test(agent-skills): unit tests for schemas + SkillsConceptCard 2026-05-27 19:23:36 -03:00
diegosouzapw
612cf63de7 feat(agent-skills): redirect /dashboard/skills -> /dashboard/omni-skills + sidebar reorder 2026-05-27 19:23:32 -03:00
diegosouzapw
aed1bd02d2 feat(agent-skills): add SkillsConceptCard shared component + i18n 2026-05-27 19:23:27 -03:00
diegosouzapw
051ce5e786 feat(agent-skills): add foundation types + Zod schemas 2026-05-27 19:23:20 -03:00
diegosouzapw
e827ac125a feat(translator): add TranslatorConceptCard with flow diagram (F2)
- TranslatorConceptCard: headline, analogy, expandable 'how it works'
- TranslateFlowDiagram: pure HTML/CSS responsive diagram (D10)
- translateOrFallback inline (D19 — no shared fallback file)
- Tooltip on technical terms (D20 a11y: aria-expanded + aria-controls)
2026-05-27 19:15:50 -03:00
diegosouzapw
75b02f6419 test(db): cover pools, consumption, plans, and migrations idempotency (B/F2)
Adds 44 tests across 4 files:
- db-quota-pools.test.ts (16 tests): CRUD lifecycle, upsertAllocations
  replace strategy, FK CASCADE, listAllocationsForApiKey cross-pool.
- db-quota-consumption.test.ts (12 tests): getBucket, incrementBucket
  atomic (100 concurrent), getPair, gcOlderThan boundary semantics.
- db-provider-plans.test.ts (10 tests): upsertPlan idempotence,
  getPlan JSON parsing, listPlans, deletePlan.
- db-quota-migrations-idempotency.test.ts (6 tests): schema assertions
  and double-run idempotency for migrations 073-075.
2026-05-27 19:14:51 -03:00
diegosouzapw
adb7f2dbe4 chore(env): document quota store env vars in .env.example (B/F2)
Adds QUOTA_STORE_DRIVER, QUOTA_STORE_REDIS_URL,
QUOTA_SATURATION_THRESHOLD, QUOTA_SOFT_DEPRIORITIZE_FACTOR, and
QUOTA_CONSUMPTION_RETENTION_DAYS as per §3.8 of master-plan-group-B.
2026-05-27 19:14:43 -03:00
diegosouzapw
44e49f635b chore(db): re-export quota modules in localDb (B/F2)
Adds re-export blocks for quotaPools (7 functions), quotaConsumption
(4 functions with gcQuotaConsumption alias), and providerPlans (4
functions with getProviderPlan/listProviderPlans/etc. aliases).
Zero logic added to localDb.ts — Hard Rule #2 maintained.
2026-05-27 19:14:38 -03:00
diegosouzapw
1721cf7b32 feat(db): add providerPlans module with CRUD for per-connection quota plans (B/F2)
Implements getPlan, listPlans, upsertPlan (idempotent ON CONFLICT DO
UPDATE), and deletePlan. Serializes QuotaDimension[] as JSON into
dimensions_json column and parses back on read. Malformed JSON returns
empty dimensions rather than throwing.
2026-05-27 19:14:32 -03:00
diegosouzapw
83790b6c6a feat(db): add quotaConsumption sliding-window counter storage (B/F2)
Implements getBucket, incrementBucket (atomic UPSERT), getPair (curr+prev
for sliding window formula), and gcOlderThan (stale bucket cleanup).
Atomic increment uses INSERT ... ON CONFLICT DO UPDATE — no separate
read-modify-write cycle needed.
2026-05-27 19:14:27 -03:00
diegosouzapw
07d6a17643 feat(db): add quotaPools module with CRUD and allocation management (B/F2)
Implements listPools, getPool, createPool, updatePool, deletePool,
upsertAllocations (replace strategy via transaction), and
listAllocationsForApiKey. All SQL uses prepared statements. Local type
shapes aligned with src/lib/quota/dimensions.ts contract (B13).
2026-05-27 19:14:21 -03:00
diegosouzapw
4f149fb5a3 feat(db): add quota_pools and quota_consumption migrations (B/F2)
Creates migrations 073 (quota_pools + quota_allocations) and 074
(quota_consumption sliding-window counter). Both are idempotent via
CREATE TABLE IF NOT EXISTS and CREATE INDEX IF NOT EXISTS. FK ON DELETE
CASCADE from quota_allocations to quota_pools. Fixes B2 IDs.
2026-05-27 19:14:15 -03:00
diegosouzapw
b2cd0d69bb test(db): cover playgroundPresets CRUD + idempotent migration
18 tests: migration idempotency, both indexes exist, full CRUD lifecycle,
params JSON round-trip, UUID v4 validation, not-found paths (null/false),
timestamp preservation, corrupted params_json recovery, patch of each
scalar field individually, empty patch no-op.
2026-05-27 19:05:37 -03:00
diegosouzapw
9d9eff684a chore(env): document PLAYGROUND_* env vars
Adds PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL and PLAYGROUND_COMPARE_MAX_COLUMNS
to .env.example per master-plan group-C §3.10 contract.
2026-05-27 19:05:31 -03:00
diegosouzapw
2c4f26d726 chore(db): re-export playgroundPresets from localDb
Adds one re-export block at the end of localDb.ts per Hard Rule #2
(re-export only, zero logic, zero function/const/class additions).
2026-05-27 19:05:26 -03:00
diegosouzapw
617d761948 feat(db): add playgroundPresets CRUD module
Implements listPlaygroundPresets, getPlaygroundPreset, createPlaygroundPreset,
updatePlaygroundPreset, and deletePlaygroundPreset using db.prepare() (never
raw db.exec or string interpolation). randomUUID() from node:crypto for IDs;
params serialized via JSON.stringify/JSON.parse with fallback to {}.
2026-05-27 19:05:21 -03:00
diegosouzapw
088ad53d79 feat(db): add playground_presets migration 076
Creates playground_presets table with indexes on name and endpoint.
Idempotent via IF NOT EXISTS (migration 076 per group-C D2 decision).
2026-05-27 19:05:15 -03:00
diegosouzapw
1b0282ed32 test(audit): cover high-level actions and activity icons 2026-05-27 19:05:10 -03:00
diegosouzapw
258c676df4 test(quota): cover dimensions, schemas, plan registry 2026-05-27 19:05:06 -03:00
diegosouzapw
7a5166621d feat(quota): add provider plan registry with known plans 2026-05-27 19:05:02 -03:00
diegosouzapw
93091fbb0a feat(audit): add high-level actions allowlist and activity icons map 2026-05-27 19:04:59 -03:00
diegosouzapw
70b9cc7831 feat(quota): add canonical dimensions, types and Zod schemas 2026-05-27 19:04:55 -03:00
diegosouzapw
5b16156ba1 Merge F8 (i18n EN+pt-BR + fallback EN for 40 locales) into orchestrator branch 2026-05-27 18:54:30 -03:00
diegosouzapw
9926a28e50 Merge F3 (UI atoms: ConceptCards, ExpirationBadge, ProgressBarBicolor) into orchestrator branch 2026-05-27 18:54:30 -03:00
diegosouzapw
1c67d4a2db Merge F1 (types + Zod schemas) into orchestrator branch 2026-05-27 18:54:30 -03:00
diegosouzapw
8958ac2b96 feat(batch): add BatchConceptCard, FilesConceptCard, ExpirationBadge, ProgressBarBicolor (F3)
Shared UI atoms for /dashboard/batch redesign (master-plan-20 §5.F3):
- BatchConceptCard: collapsible with localStorage persistence (key omniroute:concept-batch-collapsed)
- FilesConceptCard: collapsible with 3 type pills (input/output/error) and localStorage persistence
- ExpirationBadge: dynamic tier badge (critical/warning/normal/expired) with 60s setInterval auto-update
- ProgressBarBicolor: green+red dual-segment bar, handles total=0 without NaN
- 14 smoke tests covering all 4 tiers, null expiresAt, compact variant, total=0, labels toggle
2026-05-27 18:50:45 -03:00
diegosouzapw
0156e03780 feat(batches): add wizard types + Zod schemas (F1) 2026-05-27 18:45:07 -03:00
diegosouzapw
45077e211b feat(i18n): add batch redesign keys to EN + pt-BR + fallback EN for 40 other locales (F8)
Adds 70 new keys to the common namespace for the batch/files functional
redesign (wizard, upload modal, concept cards, list actions, expiration
badges, detail modal). EN and pt-BR translated manually; all other
41 locales filled with EN fallback via fill-missing-from-en.mjs.
2026-05-27 18:41:37 -03:00
diegosouzapw
722e9f41cd chore: apply unit test fixes, polyfills, and environment precedence fixes 2026-05-27 18:02:17 -03:00
JeferssonLemes
52a43d65d3 feat(modelSpecs): align opencode-go family with upstream provider limits (#2802)
Integrated into release/v3.8.6
2026-05-27 17:06:32 -03:00
Hernan Javier Ardila Sanchez
0e9aed4d03 fix(gemini): emit signaturelessToolCallMode:text for GEMINI format models (#2801)
Integrated into release/v3.8.6
2026-05-27 17:05:36 -03:00
Apostol Apostolov
87fad5d171 [codex] home: restore settings-driven home layout and quota auto-refresh (#2800)
Integrated into release/v3.8.6
2026-05-27 17:05:18 -03:00
Apostol Apostolov
f1e4c001a9 feat(logs): add clean history button (#2799)
Integrated into release/v3.8.6
2026-05-27 17:04:49 -03:00
akarray
83445a96b8 fix(oauth): repair Google loopback callback flow (#2796)
Integrated into release/v3.8.6
2026-05-27 17:04:31 -03:00
Markus Hartung
0c6c5e212e fix: Error: Unable to inspect existing database #2771 (#2795)
Integrated into release/v3.8.6
2026-05-27 17:04:13 -03:00