3133e50645
perf: fix translate deadlock, speed, trace_id, UI bugs — fullstack patch
...
## Backend (7 production files + 6 test files)
### P0-2: LLM output truncation cascade fix
- _token_budget.py: OUTPUT_PER_ROW_PER_LANG 120→200, OUTPUT_SAFETY_FACTOR 0.70→0.55
- Prevents finish_reason=length → split → retry cascade (3 calls → 1 call per batch)
- P2-8: added qwen-flash/qwen-plus/qwen-max/qwen-coder to PROVIDER_DEFAULTS
### P1-4/P1-5: EncryptionManager singleton
- encryption.py: get_encryption_manager() process-wide singleton
- llm_provider.py: use singleton instead of new EncryptionManager() per batch
- Eliminates ~90 redundant Fernet key validations per translation run
### P1-6: Cache-hit log aggregation
- _batch_proc.py: one log per batch (batch_rows + cache_hits) instead of per-row
- 1076 log lines → ~30 per run
### P1-7: Timezone-aware datetime fix
- scheduler.py: _ensure_aware() helper for naive DB datetime → UTC-aware
- Fixes TypeError in scheduled translation concurrency check
### P2-9: Connection test timeout
- connection_service.py: asyncio.wait_for(15s) on all dialect tests
- Prevents 2-minute UI hangs from DNS/TCP stalls
### Trace ID propagation
- middleware/trace.py: inject x-trace-id response header via ASGI send wrapper
### Test fixes & integration tests
- test_scheduler.py: AsyncMock for execute_run, mock get_async_job_runner
- test_sql_insert_service.py: AsyncMock for execute_sql
- test_token_budget.py: batch_size 50→45 for new OUTPUT_PER_ROW_PER_LANG=200
- test_encryption.py: +2 singleton tests
- test_scheduler_ensure_aware.py: +4 (naive→aware, passthrough, None, subtraction)
- test_batch_classify_persist.py: +2 cache-hit aggregation tests
- test_connection_service_edge.py: +2 timeout tests
- test_trace_middleware.py: +4 x-trace-id header tests
- test_token_budget.py: +4 qwen-flash/O200 tests
## Frontend (7 production files + 5 test files)
### Trace ID propagation
- api.ts: _captureTraceId() reads x-trace-id → setTraceId() in fetchApi/requestApi/postApi/deleteApi
### Duplicate datasource columns fetch
- ConfigTabForm.svelte: guard availableColumns.length === 0 before fetch
### Admin pages Svelte 5 runes fix
- admin/users/+page.svelte: plain let → () for all template-bound vars
- admin/roles/+page.svelte: same fix
- Both pages were stuck on «Загрузка...» due to mixed reactivity models
### Validation popover positioning
- +page.svelte: pass trigger HTMLElement instead of event
- DashboardHubModel.svelte.ts: toggleValidationPopover(HTMLElement), closeValidationPopover()
- Added X close button + click-outside overlay + i18n
### Test fixes & integration tests
- api.test.ts: mock setTraceId/getTraceId, +3 _captureTraceId tests
- provider_config.integration.test.ts: handleDelete→promptDeleteProvider
- DatasetPreview.test.ts: dashboards/ → ROUTES.dashboards
- test_config_tab_form.svelte.js: +2 columns fetch guard tests (NEW)
- admin-users.test.ts: +3 loading→table tests (NEW)
- admin-roles.test.ts: +2 loading→table tests (NEW)
## Semantic curation
- Removed @COMPLEXITY N from 6 route files + metrics.py (duplicate of [C:N])
- Added [C:N] to 2 orphan child contracts in metrics.py
- Added [C:N] + @BRIEF to 4 frontend anchors
- Fixed #region → # #region consistency in validation_tasks.py
## Verification
- Backend: 608 pytest passed (0 failures)
- Frontend: 2472 vitest passed (128 files, 0 failures)
- Frontend build: ✓ built in 18s
- Browser: dashboards, admin/users, admin/roles, validation popover — all green
2026-06-18 23:54:57 +03:00
ec6421de35
rename ss-tools to superset-tools across the entire project
...
- Replace all occurrences of 'ss-tools' with 'superset-tools' in 104 files
- Rename git bundle file ss-tools.bundle → superset-tools.bundle
- Update .gitignore pattern accordingly
- Preserve variable names (hasSsTools etc.) and code identifiers
2026-06-16 11:15:19 +03:00
d75db60343
docs: update effort-estimate-report with 98.4% coverage metrics
...
- Backend tests: 1723 → 7778 (+6055), coverage 48% → 98.4% real
- Scenario B estimate: 3.0-3.5 → 4.0-4.5 months (testing campaign ~55 days)
- Test file count: ~62 → ~353 (+291, mostly backend unit tests)
- Test code: ~17K → ~104K lines
- Comparison table: updated all metrics
- Added note about 25-agent parallel testing campaign
2026-06-16 11:07:02 +03:00
46d89c9006
docs(028): update all feature documents for enhancement phase completion (US11-US12)
...
- effort-estimate-report.md: updated metrics (~182 files, ~40K LOC), added enhancement breakdown, updated comparative analysis
- spec.md: status → Core + Enhancement complete, added Enhancement Implementation Notes
- plan.md: all enhancement components marked ✅ , metrics updated
- tasks.md: all 26 enhancement tasks (T135-T160) → [x], closure summary updated
- quickstart.md: added §10 Direct Database Insert flow
- data-model.md, research.md, contracts/modules.md, ux_reference.md, spec.ru.md, checklists/requirements.md: dates, statuses, metrics aligned
- all documents now reflect 2026-06-11 state: ~174-182 files, ~39-40K LOC, ~580 pytest, ~68 vitest
2026-06-11 19:11:05 +03:00
7760214170
test(agent): extend coverage — agent handler, confirmations, conversation API, tools
...
- test_agent_handler: additional edge cases for streaming, HITL, file upload
- test_confirmations: HITL confirm/deny lifecycle coverage
- test_conversation_api: conversation save/load persistence tests
- test_langchain_tools: tool registration, dual-auth header propagation
- ConversationList.test.ts (frontend): conversation list component tests
- conftest: shared fixtures for agent tests
- task_manager/manager: minor fixes from test coverage
- tasks.md/test-documentation.md: spec and test documentation updates
- speckit.test.md: speckit workflow documentation update
2026-06-10 16:38:06 +03:00
2222261157
tasks read
2026-06-09 11:44:20 +03:00
25b7a6d423
tasks
2026-06-09 10:10:26 +03:00
a7fb06cd8e
tasks ready 1
2026-06-09 09:43:34 +03:00
3c84161606
specs updated
2026-06-08 14:14:38 +03:00
bc32dd65ef
032: mark all tasks [x] — feature complete
...
Updated status in spec.md, plan.md, tasks.md, research.md,
data-model.md, ux_reference.md, quickstart.md.
All 72 tasks completed. 34/34 tests passing.
2026-06-04 21:09:14 +03:00
37f62a3032
tasks ready
2026-06-04 19:41:08 +03:00
05ef6cdff8
docs(validation): update agent configs, skills, ADRs, specs
...
- qa-tester: add validation v2 testing checklist
- speckit.plan: add component reuse scan for frontend
- molecular-cot-logging: add Svelte logger + CLI reader
- semantics-svelte: add RSM model-first protocol, frontend stack
- templates: update plan/tasks/ux-reference templates
- ADR-0004: add llm_dashboard_validation plugin registration
- ADR-0008: add assistant tool registry for v2 validation
- Specs: update 017 tasks from 51 to 99
2026-05-31 22:32:32 +03:00
652de471d2
tasks
2026-05-31 17:38:43 +03:00
477e30a9f2
git
2026-05-27 23:24:12 +03:00
1e7bcecaea
agents
2026-05-25 16:35:00 +03:00
320f82ab95
feat(auth): implement API key authentication and management
...
Introduce a new API key authentication mechanism to support service-to-service
communication (e.g., Airflow, CI/CD) without browser-based JWT login.
- Add `APIKey` model and `APIKeyPrincipal` dependency for RBAC.
- Implement `require_api_key_or_jwt` dependency with environment scoping.
- Add admin CRUD endpoints for API key lifecycle management.
- Add API key management UI in System Settings.
- Update maintenance API to support explicit `environment_id` and API key auth.
- Add i18n support for API keys and connection settings.
- Include Python and Bash usage examples in the `examples/` directory.
- Update technical specifications and documentation.
2026-05-25 11:35:27 +03:00
d9669698b8
feat(031): Maintenance Banner for Dashboards — full spec→plan→tasks package
...
Spec: 5 user stories (P1-P3), 17 FRs, 7 SCs, 12 edge cases, RBAC matrix
Plan: 7 research decisions, 15 semantic contracts (C1-C4)
Data: 4 SQLAlchemy models (Banner entity enforces one-chart-per-dashboard)
UX: async-only API, banner template with optional variables, admin settings UI
Tasks: 64 tasks across 8 phases, 12 reused frontend components
Workflow: component reuse scan mandated in speckit.plan/tasks + semantics-svelte
Constitution: filled with 7 architecture principles from ADRs
2026-05-22 16:20:39 +03:00
7f62e87b4c
tasks
2026-05-22 11:22:19 +03:00
b529e8082a
feat(030): Dataset Lifecycle Workspace — Stats Bar, split-view, inline-edit, bulk actions
...
Backend:
- Add MetricItem, StatsCounts, ColumnDescriptionUpdate, MetricDescriptionUpdate DTOs
- Add metric_count to DatasetItem and DatasetDetailResponse
- Add server-side filtering via ?filter=unmapped|mapped|linked|all
- Add PUT endpoints for column/metric description inline-edit
- Add HTML stripping validation (max 2000 chars, plain text)
- Add WebSocket dataset.updated event on task completion
- RBAC: plugin:migration:WRITE for mutations, READ for reads
- 14 pytest tests (stats, filter, metrics, inline-edit, validation, 502/503)
Frontend:
- Rewrite +page.svelte as split-view orchestrator (387 lines)
- StatsBar.svelte — 4 metric tiles with aria-pressed, server-side filter dispatch
- DatasetList.svelte — card grid with progress bars, checkboxes, search
- DatasetPreview.svelte — presentational detail panel (container fetches)
- ColumnsTable.svelte — inline-edit with type chips, bold/italic fallback
- MetricsTable.svelte — inline-edit with expression hints
- 52 vitest tests across 7 test files
- i18n: 11 EN + 11 RU keys (with_mapping/с_маппингом)
Spec:
- 15 issues resolved (semantic label, filtering, endpoints, conflict, metric_count, RBAC, ID types, ports, i18n, validation, a11y, propagation, resize, perf, ownership)
Status: 14/14 backend tests pass, 52/52 frontend tests pass, build succeeds
Risk: Low — T051 browser validation pending (non-blocking)
2026-05-21 13:58:47 +03:00
d1fdba5af1
tasks
2026-05-20 09:59:11 +03:00
b916ef94d5
semantics
2026-05-19 18:36:15 +03:00
afe6c7e281
agents
2026-05-18 23:58:42 +03:00
6988e63967
chore: commit remaining pre-existing changes
...
- Agent configs (.opencode/agents/)
- Backend: alembic, routes, app, utils, scripts
- Frontend: package.json, vite, components, e2e infra
- Specs: 028-llm-datasource-supeset updates
- Docker e2e config and Playwright setup
2026-05-17 19:23:07 +03:00
9f3f6611a1
feat(translate): complete Phase 10-11 — full spec 028 closure (T075-T134)
...
Phase 10 closure:
- T075: NotificationService wiring for scheduled-run failures
- T077: Semantic audit via axiom MCP (0 warnings)
- T078: Quickstart validation — all 165+280 tests pass
Phase 11 completion:
- T083-T086: Multi-language models/schemas/Alembic migration
- T087-T090: Auto-detect source language (BCP-47) + tests
- T091-T095: Multilingual dictionaries with language-pair filtering
- T096-T108: Multi-language job config → preview → execution pipeline
- T109-T118: Inline correction + BulkReplaceModal + CorrectionCell + tests
- T119-T122: Per-language history and MetricSnapshot
- T123-T134: Context-aware corrections (Jaccard similarity, priority flagging, context_data)
New files: Alembic migration, test_scheduler, test_inline_correction,
BulkReplaceModal, vitest for CorrectionCell + BulkReplaceModal
Total: 134/134 tasks complete. Backend 165p, Frontend 280p.
2026-05-14 21:14:04 +03:00
5e741a4332
specks updated
2026-05-14 15:27:41 +03:00
4074506114
chore: gitignore runtime artifacts, commit pre-existing dictionary+specs changes
2026-05-14 10:17:09 +03:00
344b47ca23
tasks ready
2026-05-08 18:01:49 +03:00
7901ce0f39
semantics
2026-03-27 21:27:31 +03:00
202823aba5
feat(ui): add chat-driven dataset review flow
...
Move dataset review clarification into the assistant workspace and
rework the review page into a chat-centric layout with execution rails.
Add session-scoped assistant actions for mappings, semantic fields,
and SQL preview generation. Introduce optimistic locking for dataset
review mutations, propagate session versions through API responses,
and mask imported filter values before assistant exposure.
Refresh tests, i18n, and spec artifacts to match the new workflow.
BREAKING CHANGE: dataset review mutation endpoints now require the
X-Session-Version header, and clarification is no longer handled
through ClarificationDialog-based flows
2026-03-26 13:33:12 +03:00
7cff6bdcf8
semantic
2026-03-18 08:45:15 +03:00
5a16820979
fix(us3): align dataset review contracts and acceptance gates
2026-03-17 18:20:36 +03:00
66a53e81a7
docs(027): Mark Final Phase T038-T043 as completed
2026-03-17 14:36:15 +03:00
b51a68168c
feat(027): Final Phase T038-T043 implementation
...
- T038: SessionEvent logger and persistence logic
- Added SessionEventLogger service with explicit audit event persistence
- Added SessionEvent model with events relationship on DatasetReviewSession
- Integrated event logging into orchestrator flows and API mutation endpoints
- T039: Semantic source version propagation
- Added source_version column to SemanticFieldEntry
- Added propagate_source_version_update() to SemanticResolver
- Preserves locked/manual field invariants during propagation
- T040: Batch approval API and UI actions
- Added batch semantic approval endpoint (/fields/semantic/approve-batch)
- Added batch mapping approval endpoint (/mappings/approve-batch)
- Added batch approval actions to SemanticLayerReview and ExecutionMappingReview components
- Aligned batch semantics with single-item approval contracts
- T041: Superset compatibility matrix tests
- Added test_superset_matrix.py with preview and SQL Lab fallback coverage
- Tests verify client method preference and matrix fallback behavior
- T042: RBAC audit sweep on session-mutation endpoints
- Added _require_owner_mutation_scope() helper
- Applied owner guards to update_session, delete_session, and all mutation endpoints
- Ensured no bypass of existing permission checks
- T043: i18n coverage for dataset-review UI
- Added workspace state labels (empty/importing/review) to en.json and ru.json
- Added batch action labels for semantics and mappings
- Fixed workspace state comparison to lowercase strings
- Removed hardcoded workspace state display strings
Signed-off-by: Implementation Specialist <impl@ss-tools>
2026-03-17 14:29:33 +03:00
b99e284e1b
docs(027): sync plan and task status with accepted us1 delivery
2026-03-17 11:07:59 +03:00
268ac66a38
feat(us1): add dataset review orchestration automatic review slice
2026-03-17 10:57:49 +03:00
01409b9cff
Таски готовы
2026-03-16 23:11:19 +03:00
63940020db
chore(semantic): checkpoint remediation progress
2026-03-15 21:08:00 +03:00
e047efb8cc
fix dashboard validation fallback and semantic relation parsing
2026-03-15 16:32:39 +03:00
96b5282fe2
Finalize assistant and dashboard health updates
2026-03-15 13:19:46 +03:00
0e94268980
Add docker admin bootstrap for clean release
2026-03-13 11:41:44 +03:00
a1edace9b7
fix logger import
2026-03-11 11:30:07 +03:00
e50fc4c476
few shots update
2026-03-11 09:08:32 +03:00
b4b17d89b4
код написан
2026-03-10 12:00:18 +03:00
6775c7e3db
feat(clean-release): complete compliance redesign phases and polish tasks T047-T052
2026-03-10 09:11:26 +03:00
246a4231a5
таски готовы
2026-03-09 16:52:46 +03:00
328c666c37
rebase rework
2026-03-09 13:19:06 +03:00
d67824b270
feat: automatically align Git repository origin host with configured server URL to prevent mismatches
2026-03-08 11:28:00 +03:00
1b2f76ee23
feat: Implement user profile preferences for start page, Git identity, and task drawer auto-open, alongside Git server default branch configuration.
2026-03-08 10:19:38 +03:00
985168efb3
fix(profile-filter): support owner object payloads and normalize owners response
2026-03-06 15:02:03 +03:00
52195f3f01
feat(rbac): auto-sync permission catalog from declared route/plugin guards
2026-03-06 11:30:58 +03:00