• v1.7.3-dev 6467fbedd7

    FTMahringer released this 2026-05-09 15:12:13 +02:00 | 223 commits to main since this release

    Providers Screen

    Operator can list, create, test, and delete model providers.

    Features:

    • ProvidersView.vue — full CRUD against /api/providers
    • Provider list with ENABLED/DISABLED status badge
    • Add Provider form: name, type (Ollama/OpenAI/Anthropic), base URL, API key
    • Test button calls POST /api/providers/{id}/test and shows result alert
    • Delete button removes provider from list
    • panel-header and inline-form CSS components added

    Next: v1.7.4-dev Conversations screen

    Downloads
  • v1.7.2-dev a596cb88c2

    FTMahringer released this 2026-05-09 15:10:58 +02:00 | 224 commits to main since this release

    Authenticated Layout and Role-Aware Navigation

    Login overlay gates all dashboard views. Role badge and logout in sidebar.

    Features:

    • authStore (Pinia) — login(), logout(), isAuthenticated, role, isOwner, isAdmin, canWrite
    • Token persisted to localStorage (synapse_token + synapse_user), restored on load
    • POST /api/auth/login called with credentials, token stored
    • api.ts refactored — authHeaders() injects Bearer token; get/post/del helpers replace raw fetch calls
    • App.vue shows login-overlay when not authenticated; main shell when authenticated
    • Login form: username + password, error display, submit on Enter
    • Sidebar footer shows SSE/WS badges + role label + logout button

    Next: v1.7.3-dev Providers screen

    Downloads
  • v1.7.1-dev 37cfa806fa

    FTMahringer released this 2026-05-09 15:07:59 +02:00 | 225 commits to main since this release

    Vue Router, Pinia State Management, View Structure

    Dashboard refactored from single-file tab component to proper routed multi-view application.

    Features:

    • vue-router 4.5 + pinia 2.3 added to package.json
    • router/index.ts — hash history, lazy-loaded routes for all 9 screens
    • appStore (Pinia) — global error/loading state
    • liveStore (Pinia) — SSE log stream + WS conversation events, shared across views
    • main.ts updated to register router and pinia
    • App.vue refactored to sidebar shell + RouterView — handles stream connections globally
    • All views extracted: OverviewView, AgentsView, RoutingView, PluginsView, StoreView, LogsView
    • ProvidersView, ConversationsView, SettingsView — stubs for next steps
    • RouterLink-based nav with router-link-active class
    • SSE/WS status badges in sidebar footer
    • Sidebar updated to flex-column for bottom-anchored status

    Next: v1.7.2-dev Authenticated layout and role-aware navigation

    Downloads
  • v1.6.8-hotfix b4c6d40c19

    FTMahringer released this 2026-05-09 15:00:16 +02:00 | 226 commits to main since this release

    V11 Migration Conflict Fix

    V11 tried to create plugin_stats which already exists in V1 initial schema.

    Error:

    • V1__initial_schema.sql already defines plugin_stats (downloads, stars, bundle_count for marketplace stats)
    • V11__add_plugin_stats.sql tried CREATE TABLE plugin_stats — duplicate → Flyway failure

    Fix:

    • Renamed PluginStats entity table to plugin_operational_stats
    • V11 now creates plugin_operational_stats (install_count, enable_count, disable_count, last_used_at)
    • V1 plugin_stats remains unchanged for marketplace/store stats

    Followup to v1.6.5-dev.

    Downloads
  • v1.7.0 b4c6d40c19

    FTMahringer released this 2026-05-09 15:00:16 +02:00 | 226 commits to main since this release

    SYNAPSE v1.7.0 — Plugin and Store Runtime

    Full plugin lifecycle, store registry sync, bundle install, stats tracking, and safety enforcement.


    Changelog

    v1.6.1-dev — Plugin Manifest Parser and Validator

    • PluginManifest record with fromMap() factory
    • ManifestValidator — required fields, id format, type enum, semver, description length
    • ValidationResult record — ok()/fail() factories

    v1.6.2-dev — Plugin Install/Enable/Disable/Uninstall APIs

    • PluginLifecycleService — install (validates first), enable, disable, uninstall
    • Lifecycle events logged to system log and event bus
    • PluginController — POST /install, POST /{id}/enable, POST /{id}/disable, DELETE /{id}

    v1.6.3-dev — Store Registry Sync

    • StoreEntry entity — PLUGIN/BUNDLE types, source, version, tags (jsonb), meta (jsonb)
    • StoreRegistryService — parses store/registry.yml, upserts plugins and bundles
    • StoreRegistrySyncRunner — syncs on startup (non-fatal)
    • GET /api/store with optional ?type filter
    • Migration V10, docker-compose mounts store volume

    v1.6.4-dev — Bundle Validation and Install Flow

    • BundleInstallService — validateBundle(), installBundle() installs all plugins in order
    • BundleInstallResult record with success/installed/errors
    • POST /api/store/{id}/validate, POST /api/store/{id}/install

    v1.6.5-dev — Plugin Stats Tracking

    • PluginOperationalStats entity (plugin_operational_stats table) — install/enable/disable counts, last_used_at
    • PluginStatsService — recordInstall/Enable/Disable(), upsert on each lifecycle action
    • GET /api/plugins/stats, GET /api/plugins/{id}/stats
    • Migration V11

    v1.6.6-dev — Dashboard Plugin and Store Views

    • Plugins tab: installed list with status badge + enable/disable/uninstall controls
    • Store tab: registry entries with Install Bundle action
    • api.ts: fetchPlugins, enablePlugin, disablePlugin, uninstallPlugin, fetchStore, installBundle

    v1.6.7-dev — Plugin Safety Rules

    • PluginTrustLevel enum — VERIFIED, COMMUNITY, UNVERIFIED
    • PluginSafetyPolicy record with warnings list and requiresConfirmation flag
    • PluginSafetyService — maps source to trust level, blocks unconfirmed community installs
    • POST /api/plugins/install?confirmed=false (default), POST /api/plugins/install/assess

    v1.6.8-hotfix — V11 Migration Conflict Fix

    • V1 already defined plugin_stats; renamed operational table to plugin_operational_stats

    Exit Criteria Met

    • Operator can install a local plugin manifest (with safety enforcement)
    • Operator can enable or disable installed plugins
    • Store entries are queryable via backend API
    • Bundle install flow validates and installs all referenced plugins

    Next milestone: v1.8.0 — Dashboard Management

    Downloads
  • v1.6.7-dev 3069760490

    FTMahringer released this 2026-05-09 14:55:35 +02:00 | 227 commits to main since this release

    Plugin Safety Rules

    Community and unverified plugins blocked at install without explicit operator confirmation.

    Features:

    • PluginTrustLevel enum — VERIFIED, COMMUNITY, UNVERIFIED
    • PluginSafetyPolicy record — trustLevel, requiresConfirmation, warnings list; verified()/community()/unverified() factories
    • PluginSafetyService — assess() maps source to trust level, safeInstall() blocks unconfirmed community installs
    • Verified sources: official, acp — no confirmation needed
    • Community sources: community, skills_sh — require confirmed=true
    • Unknown/blank sources — UNVERIFIED, require confirmed=true
    • POST /api/plugins/install now takes ?confirmed=false by default
    • POST /api/plugins/install/assess — returns SafetyPolicy without installing
    • PLUGIN_SAFETY_ASSESSED event logged on every install attempt

    Next: Docker Compose test, then v1.7.0 release

    Downloads
  • v1.6.6-dev 1af21c192e

    FTMahringer released this 2026-05-09 14:54:28 +02:00 | 229 commits to main since this release

    Dashboard Plugin and Store Management Views

    Two new tabs for managing installed plugins and browsing the store.

    Features:

    • Plugins tab: list installed plugins with status badge + enable/disable/uninstall controls
    • Store tab: list all store entries (PLUGIN/BUNDLE) with Install Bundle action for bundles
    • api.ts: fetchPlugins(), enablePlugin(), disablePlugin(), uninstallPlugin(), fetchStore(), installBundle()
    • Plugin and StoreEntry TypeScript interfaces
    • Nav updated with Plugins and Store links
    • Reload after bundle install to refresh plugin list

    Next: v1.6.7-dev Safety rules for community plugin installs

    Downloads
  • v1.6.5-dev 6bba70aee5

    FTMahringer released this 2026-05-09 14:52:46 +02:00 | 230 commits to main since this release

    Plugin Stats Tracking

    Install, enable, and disable counts per plugin with last-used timestamp.

    Features:

    • PluginStats entity — install_count, enable_count, disable_count, last_used_at, updated_at
    • PluginStatsService — recordInstall(), recordEnable(), recordDisable(), upsert on each action
    • PluginLifecycleService wired to call stats on install/enable/disable
    • PluginController extended: GET /api/plugins/stats, GET /api/plugins/{id}/stats
    • Migration V11 with plugin_stats table

    Next: v1.6.6-dev Dashboard plugin/store management views

    Downloads
  • v1.6.4-dev c824cc00c2

    FTMahringer released this 2026-05-09 14:50:55 +02:00 | 231 commits to main since this release

    Bundle Validation and Install Flow

    Validates bundles against store registry and installs all referenced plugins.

    Features:

    • BundleInstallService — validateBundle() checks entry exists, is BUNDLE type, all referenced plugins exist in store
    • installBundle() — installs each plugin in order, skips already-installed, logs BUNDLE_INSTALLED
    • BundleInstallResult record — success, installed list, errors list
    • StoreController extended: POST /api/store/{id}/validate, POST /api/store/{id}/install
    • Type inference for plugin manifests built from store entries (channel/model/mcp/skill from tags)

    Next: v1.6.5-dev Plugin stats tracking

    Downloads
  • v1.6.3-dev 3aeeb0678b

    FTMahringer released this 2026-05-09 14:49:42 +02:00 | 232 commits to main since this release

    Store Registry Sync

    Store entries synced from local store/registry.yml into the database on startup.

    Features:

    • StoreEntry entity — id, name, type (PLUGIN/BUNDLE), source, version, author, license, description, minSynapse, tags (jsonb), meta (jsonb), syncedAt
    • StoreEntryRepository — findByType(), findBySource()
    • StoreRegistryService — parses plugins[] and bundles[] from registry YAML, upserts to DB, logs STORE_SYNCED
    • StoreRegistrySyncRunner — ApplicationRunner, loads on startup, non-fatal on error
    • StoreController — GET /api/store (optional ?type=PLUGIN|BUNDLE filter)
    • Migration V10 with store_entries table
    • docker-compose mounts ../../store:/app/store:ro, sets SYNAPSE_STORE_REGISTRY_PATH

    Next: v1.6.4-dev Bundle validation and install flow

    Downloads