Aureliolo
synthorg
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
chore: Update Web dependencies
renovate/web
24 minutes ago
test(providers): vendor-agnostic preset name in TestPresetOverrideService Round-5b CodeRabbit COMMENTED-state finding (flagged duplicate of an earlier rule but the actual code path was unfixed): the unit tests in ``TestPresetOverrideService`` still used the real vendor name ``"openai"`` even though the conformance + DTO tests had already been converted to vendor-agnostic fixtures. Add a ``stub_preset_lookup`` fixture that monkeypatches ``preset_override_service.get_preset`` to recognise ``"test-cloud-provider"``, and use that name across the upsert / audit / delete tests. The service still validates against the real preset catalog elsewhere; the stub is scoped to the override- service tests that only care about the service's pre-validation + persistence + audit emission contract. 24 unit tests pass; ruff + format clean.
feat/frontend-tier1-pt2
45 minutes ago
chore(main): release 0.7.5
release-please--branches--main--components--synthorg
54 minutes ago
test(providers): cover preset_override row corruption + workflow helpers Lift codecov patch coverage above the 70% gate (was 68.58% on the post-round-3 diff). New coverage targets the most-uncovered files flagged by the codecov diff report: - tests/unit/persistence/sqlite/test_preset_override_repo.py: every corruption path of ``_row_to_override`` -- bad JSON, wrong JSON shape, non-string list elements, corrupt scalar columns (preset_name None / empty / non-string, base_url non-string, updated_at non-string, updated_by None / empty). Plus the upsert guard for missing updated_at and the ``get()`` wrapper that promotes a deserialise ValueError into ``QueryError``. - tests/unit/api/controllers/test_workflow_helpers.py: ``get_auth_user_id`` and ``request_audit_actor`` against authenticated, anonymous, and spoofed-non-AuthenticatedUser request scopes. - TestSyncModels.test_sync_rejects_when_provider_endpoint_changed_during_discovery in test_capability_mutations.py: covers the round-3 stale-discovery guard that aborts the sync if ``base_url`` / ``auth_type`` / ``preset_name`` was swapped while we were awaiting upstream discovery. - TestSubscriptionRotationToSGuard: covers the round-3 ToS guard in ``credentials_update_fields`` that rejects subscription rotations sent with ``tos_accepted=false``; also asserts no audit row is written when validation fails. All 45 new tests pass; ruff + format clean.
feat/frontend-tier1-pt2
2 hours ago
fix(web,providers): round-5 CodeRabbit triage Address all 2 new CodeRabbit findings from the round-4 review pass. - preset_override_repo._row_to_override now type-checks each scalar column (preset_name / base_url / updated_at / updated_by) and validates candidate_urls list elements as strings. The previous ``str(row[...])`` shortcut would have stringified a corrupt NULL ``updated_by`` to ``"None"`` and let ``get()`` return a seemingly-valid PresetOverride for a corrupt row. Now we fail-closed with QueryError instead. - VersionHistorySection initial-load effect resets ``loadingMore`` on every new epoch. Without it, a stale load-more whose epoch advanced (correctly) skips its finally cleanup but leaves the spinner stuck and the ``loadingMore || loading`` guard permanently early-returns. Tests + lint clean (1048 backend conformance + provider tests pass).
feat/frontend-tier1-pt2
2 hours ago
fix(web,providers): round-4 CodeRabbit triage Address all 3 new CodeRabbit findings from the round-3 review pass. - preset_override_repo: log a WARNING when re-raising a QueryError raised inside ``_decode_json_list`` so the corrupt-row context (preset_name) reaches the log boundary every time, not only on the surrounding read-failure path. - VersionHistorySection: add a monotonic ``requestEpochRef`` that the initial-load effect bumps on every re-arm. ``handleLoadMore`` reads the epoch before its await and discards the page if the epoch advanced while it was in flight; prevents a slow load-more from appending stale rows onto a freshly-reloaded or client-switched timeline. - VersionHistorySection: ``handleSelect`` comment now describes the actual behaviour (a second click on the SAME version clears the selection; only a different version opens the diff drawer). Tests + lint clean.
feat/frontend-tier1-pt2
3 hours ago
fix(web,providers): round-3 CodeRabbit triage Address all 9 new CodeRabbit findings from the round-2 review pass. Backend: - providers.md audit-event list now mentions bulk model sync. - preset_override_repo upsert logs WARNING before raising QueryError on missing updated_at/updated_by (matches the log-before-raise contract). - _capabilities_mixin emits INFO logs on every successful state transition: PROVIDER_MODEL_ADDED, PROVIDER_MODELS_SYNCED, PROVIDER_CREDENTIALS_ROTATED, PROVIDER_RATE_LIMITS_UPDATED. - sync_models snapshots provider config (base_url / auth_type / preset_name) BEFORE discovery and re-checks under the lock; if the endpoint or credentials changed during discovery, the sync is rejected with ProviderValidationError so we don't persist models discovered from one upstream onto a different config. - Subscription credential rotation now rejects tos_accepted=false (was silently rotating + clearing tos_accepted_at, bypassing the re-acceptance contract documented on _SubscriptionRotation). Frontend: - RollbackConfirmDialogProps<T> exported for external typing. - VersionHistorySection.handleRefresh routed through the guarded fetch effect via a reloadNonce, so a stale in-flight request cannot apply data after client changes / unmount. - users store: monotonic listRequestToken invalidates stale fetchMoreUsers responses if a fetchUsers refresh starts while load-more is in flight (functional setter alone did not protect against that race). Tests + lint: 1052 backend unit tests pass; ruff clean; web type-check + ESLint clean.
feat/frontend-tier1-pt2
3 hours ago
fix(web,providers): round-2 CodeRabbit triage Address all 16 new CodeRabbit findings from the second review pass. Backend: - providers.md wording: "shorter than 8 chars" -> "of length 8 or shorter" so the doc matches the masking implementation. - sqlite preset_override repo: wrap _row_to_override() so a corrupt row escapes as QueryError (with a warning log) instead of a raw Pydantic / enum / datetime exception. - sync_models() now forwards request.preset_hint to discover_models_for_provider; preset-guided discovery (Ollama vs standard /models) works as documented. - _capability_helpers: add module-level get_logger and emit a warning before raising ProviderValidationError on the unsupported-auth path. - FakePersistenceBackend.clear() now skips ``unittest.mock.Mock`` values (Mock objects expose every attribute as a callable Mock, which the previous repo-clear shortcut would have invoked as a no-op clear and incorrectly skipped the lazy-stub fallback walk). Frontend: - RollbackConfirmDialog: early-return when ``submitting`` is true to prevent duplicate rollback submissions / audit rows. - VersionHistorySection: reset selection / diff / rollback state when ``client`` changes so cross-entity navigation does not surface a stale rollback CTA. handleLoadMore guards on ``loadingMore`` / ``loading`` against fast repeated triggers appending duplicate rows. - EntityCatalog: attribute_count sort reads the canonical scalar from list payloads (was incorrectly collapsing to 0 when the full ``attributes`` array was absent). - EntityCatalog: bespoke <button> replaced with the shared <Button variant="outline" size="icon"> primitive. - AddManualModelDialog: open-state ref guard so a slow add-model request that resolves after the dialog closes does not wipe inputs in the new session. - escalations store: clearDetail() also clears detailLoading so the store does not get stuck in a phantom loading state when a fetch is invalidated mid-flight. - providers/audit-actions: fetchPresetOverride now uses the request-token / functional-setter pattern (new presetOverridePresetName field on the store) so a slow fetch for preset A cannot overwrite preset B's state. - providers/crud-actions: updateRateLimits, updatePresetOverride, deletePresetOverride sync the read slice the bound drawer renders so the form does not keep showing pre-write values. - users store: fetchUsers and fetchMoreUsers pass an explicit USERS_PAGE_LIMIT (cursor-pagination contract requires {cursor, limit} on every fetch-more); failure paths use log.error + sanitizeForLog instead of log.warn + getErrorMessage. Tests + lint: ruff clean, web type-check clean, ESLint clean, 3565 backend unit tests pass.
feat/frontend-tier1-pt2
3 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
chore: Update Web dependencies
#1569
27 minutes ago
8eafaa5
renovate/web
CodSpeed Performance Gauge
0%
feat(web,providers): frontend completeness audit + Tier-1 follow-up pt.2 (#1603, #1642)
#1662
50 minutes ago
f5fca07
feat/frontend-tier1-pt2
CodSpeed Performance Gauge
0%
chore(main): release 0.7.5
#1649
59 minutes ago
7f443d2
release-please--branches--main--components--synthorg
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs