Chris Coutinho
dfc81923ba
fix: resolve CI linting issues for Astroglobe
...
Fix all ESLint, Stylelint, PHP CS Fixer, and Psalm workflow errors.
Changes:
- ESLint fixes:
- Remove unused APP_NAME constant
- Remove unused TextBoxOutline and TextBoxRemoveOutline components
- Remove unused container variable in adminSettings.js
- Auto-fix trailing commas, line breaks, attribute ordering
- PHP CS Fixer:
- Add trailing commas after last function parameters
- Convert double quotes to single quotes in log messages
- Remove unused NoCSRFRequired import
- Fix arrow function formatting
- Stylelint:
- Update config to use @nextcloud/stylelint-config
- Fix extends directive (was using non-existent package)
- Psalm workflow:
- Fix jq object indexing (.include[0] instead of .[0])
- Correctly extract OCP version from matrix output
All checks now pass locally.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-18 00:01:54 +01:00
Chris Coutinho
0f7e87a91c
feat(astrolabe): add OAuth token refresh and webhook presets
...
Implement automatic token refresh and pre-configured webhook bundles
to simplify vector sync configuration.
Changes:
- Add IdpTokenRefresher service for automatic OAuth token renewal
- Works with both Nextcloud OIDC and external IdPs (Keycloak)
- Uses OIDC discovery for automatic endpoint detection
- Supports confidential clients with client_secret
- Add WebhookPresets service with pre-configured bundles:
- Notes sync (file created/written/deleted in Notes folder)
- Calendar sync (calendar object created/updated/deleted)
- Tables sync (row added/updated/deleted, Nextcloud 30+)
- Forms sync (form submitted, Nextcloud 30+)
- Update ApiController to use automatic token refresh
- Pass refresh callback to McpTokenStorage
- Add getWebhookPresets endpoint (admin-only)
- Add configureWebhooks endpoint for bulk setup
- Update OAuthController for webhook management
- Add new API routes for webhook configuration
Benefits:
- Eliminates manual token refresh
- Simplifies webhook setup with one-click presets
- Provides app-aware filtering (only shows presets for installed apps)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-18 00:01:35 +01:00
Chris Coutinho
4cce4f6392
feat(astrolabe): add admin search settings and enhanced UI
...
Add comprehensive admin controls for the unified search provider and enhance the frontend UI with filtering and visualization improvements.
**Admin Settings:**
- Configure default search algorithm (hybrid, semantic, bm25)
- Set fusion method for hybrid search (rrf, dbsf)
- Adjust minimum score threshold (0-100%)
- Set result limit (1-100 results)
**Frontend Enhancements:**
- Add score-based result filtering with slider control
- Add expandable excerpts for search results
- Improve result visualization and formatting
- Add algorithm badge to show search method used
**API Changes:**
- Add `/api/admin/search-settings` POST endpoint
- Add `searchForUnifiedSearch()` method to McpServerClient
- Load and apply admin settings in SemanticSearchProvider
**Technical Details:**
- Settings stored in app config table
- Defaults: hybrid algorithm, rrf fusion, 0% threshold, 20 results
- SemanticSearchProvider respects admin-configured limits
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-18 00:01:19 +01:00
Chris Coutinho
97b48ca3dd
feat(astrolabe): add 3D PCA visualization for semantic search
...
- Add Plotly.js 3D scatter plot showing search results in PCA space
- Create shared visualization.py module to avoid code duplication
- Pass include_pca parameter through API chain to enable coordinates
- Fix OAuth redirects to use /settings/user/astroglobe
The visualization shows document embeddings projected to 3D via PCA,
with the query point highlighted in red. Uses Viridis colorscale
for score visualization, matching the existing vector-viz page.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 00:01:09 +01:00
Chris Coutinho
21817543ad
feat(astrolabe): add Nextcloud PHP app for MCP server management
...
Adds a native Nextcloud app "Astroglobe" that provides:
- Personal settings: OAuth authorization for background MCP access
- Admin settings: Server status and vector sync monitoring
- API endpoints for MCP server communication
The app uses PKCE OAuth flow to obtain tokens for the MCP server,
enabling features like background vector sync per ADR-018.
Includes:
- PHP app structure (controllers, services, settings)
- Vue.js frontend components
- Docker compose mount configuration
- Installation hook for development testing
- ADR-018 documentation
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 00:00:40 +01:00