github-actions[bot]
9c4c4d4563
bump: version 0.57.12 → 0.57.13
2026-01-24 11:45:02 +00:00
Chris Coutinho and GitHub
2d74b1a1fb
Merge pull request #495 from cbcoutinho/renovate/anthropics-claude-code-action-1.x
...
chore(deps): update anthropics/claude-code-action action to v1.0.34
2026-01-24 12:44:48 +01:00
renovate-bot-cbcoutinho[bot] and GitHub
26ba237142
chore(deps): update anthropics/claude-code-action action to v1.0.34
2026-01-24 11:07:19 +00:00
Chris Coutinho and Claude Opus 4.5
7b75304c9f
feat(scripts): add database query helpers for development
...
Add dbquery.py for MariaDB and sqlitequery.py for SQLite databases
in MCP service containers. Both scripts wrap docker compose exec to
simplify database inspection during development.
- dbquery.py: Query Nextcloud MariaDB with vertical/JSON output
- sqlitequery.py: Query MCP service SQLite DBs with service aliases
(mcp, oauth, keycloak, basic) and column/JSON output modes
- Document both scripts in CLAUDE.md Database Inspection section
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-24 09:26:30 +01:00
Chris Coutinho
9004e14022
Merge remote-tracking branch 'origin/master' into renovate/plotly.js-dist-min-3.x
2026-01-21 18:22:05 +01:00
Chris Coutinho and Claude Opus 4.5
e7a3dd698a
fix(astrolabe): update Plotly title attributes for v3 compatibility
...
Plotly.js v3 removed string format for title attributes (plotly/plotly.js#7212 ).
All titles must now use object format: { text: "..." }
Changes:
- Main layout title: string → { text: "..." }
- Scene axis titles (xaxis, yaxis, zaxis): string → { text: "..." }
- Colorbar title: string → { text: "..." }
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-21 14:04:49 +01:00
github-actions[bot]
c12007c342
bump: version 0.57.11 → 0.57.12
2026-01-20 14:26:42 +00:00
Chris Coutinho and GitHub
f37cf8a159
Merge pull request #492 from cbcoutinho/renovate/docker.io-library-nextcloud-32.0.5
...
chore(deps): update docker.io/library/nextcloud:32.0.5 docker digest to 11a3a4f
2026-01-20 15:26:23 +01:00
github-actions[bot]
07f2952599
bump: version 0.57.10 → 0.57.11
2026-01-20 13:27:05 +00:00
Chris Coutinho and GitHub
6cf916876a
Merge pull request #493 from cbcoutinho/renovate/ollama-1.x
...
chore(deps): update helm release ollama to v1.38.0
2026-01-20 14:26:48 +01:00
renovate-bot-cbcoutinho[bot] and GitHub
27b11eabf9
chore(deps): update helm release ollama to v1.38.0
2026-01-20 11:12:04 +00:00
renovate-bot-cbcoutinho[bot] and GitHub
da31dec33e
chore(deps): update docker.io/library/nextcloud:32.0.5 docker digest to 11a3a4f
2026-01-20 11:11:24 +00:00
github-actions[bot]
a61bcccdac
bump: version 0.57.9 → 0.57.10
2026-01-19 12:42:51 +00:00
Chris Coutinho and GitHub
774de68966
Merge pull request #488 from cbcoutinho/renovate/docker.io-library-python-3.12-slim-trixie
...
chore(deps): update docker.io/library/python:3.12-slim-trixie docker digest to 5e2dbd4
2026-01-19 13:42:35 +01:00
github-actions[bot]
44b77875f7
bump: version 0.57.8 → 0.57.9
2026-01-19 12:41:25 +00:00
Chris Coutinho and GitHub
5469cf05f0
Merge pull request #490 from cbcoutinho/renovate/docker.io-library-nextcloud-32.x
...
chore(deps): update docker.io/library/nextcloud docker tag to v32.0.5
2026-01-19 13:41:10 +01:00
renovate-bot-cbcoutinho[bot] and GitHub
6832ae1198
fix(deps): update dependency plotly.js-dist-min to v3
2026-01-18 11:14:27 +00:00
github-actions[bot]
619faaf1df
bump: version 0.57.7 → 0.57.8
2026-01-18 10:57:38 +00:00
Chris Coutinho and GitHub
34387ff202
Merge pull request #489 from cbcoutinho/renovate/anthropics-claude-code-action-1.x
...
chore(deps): update anthropics/claude-code-action action to v1.0.30
2026-01-18 11:57:23 +01:00
github-actions[bot]
76d3174264
bump: version 0.8.2 → 0.8.3
2026-01-17 20:38:00 +00:00
github-actions[bot]
723337754f
bump: version 0.57.6 → 0.57.7
2026-01-17 20:38:00 +00:00
github-actions[bot]
2d79fc6c3d
bump: version 0.61.4 → 0.61.5
2026-01-17 20:38:00 +00:00
Chris Coutinho and GitHub
80972f5d37
Merge pull request #487 from cbcoutinho/fix/astrolabe-token-refresh-internal-url
...
fix(astrolabe): use internal URL for OAuth token refresh
2026-01-17 21:37:40 +01:00
Chris Coutinho and Claude Opus 4.5
f0ade4ad28
refactor(astrolabe): add PHP property types to fix Psalm errors
...
Add explicit property type declarations to IdpTokenRefresher,
CredentialsController, OAuthController, and McpServerClient classes.
This improves type safety and allows Psalm to properly infer types,
eliminating MissingPropertyType and many MixedMethodCall errors.
Also adds IClient import where needed and validates getSystemValue
returns to ensure string types before use.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 21:24:56 +01:00
Chris Coutinho and Claude Opus 4.5
737f10f190
fix(astrolabe): improve token refresh error handling and validation
...
- Extract magic number to TOKEN_EXPIRY_BUFFER_SECONDS constant
- Add URL validation for astrolabe_internal_url with fallback
- Warn when internal URL uses external port mapping (misconfiguration)
- Differentiate HTTP error handling by status code:
- Network errors (LocalServerException): warning level
- Auth errors (401/403): error level (token invalid)
- Server errors (500+): warning level (transient)
- Reduce log level for IdP selection messages to debug
- Add integration tests for credential storage, isolation, and revoke/reprovision
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 19:43:15 +01:00
Chris Coutinho
813e9a60cb
chore: Run npm install
2026-01-17 15:03:33 +01:00
Chris Coutinho and Claude Opus 4.5
5c25b87cbe
chore(astrolabe): remove duplicate .github workflows
...
GitHub workflows should be defined only in the root .github directory,
not in the subproject directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 14:26:20 +01:00
Chris Coutinho and Claude Opus 4.5
e48c5fa9a2
fix(astrolabe): delete stale tokens when refresh fails
...
- Delete stored token when refresh callback fails or returns null
- Delete stored token when expired with no refresh callback available
- Fix test namespaces (Service → OCA\Astrolabe\Tests\Unit\Service)
- Update tests to verify token deletion on refresh failure
Prevents repeated refresh attempts with stale tokens that will never
succeed, improving error handling and reducing unnecessary API calls.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 14:21:53 +01:00
Chris Coutinho and Claude Opus 4.5
303efeddf7
refactor(astrolabe): upgrade to @nextcloud/vue 9.3.3 API
...
- Replace NcCheckboxRadioSwitch :checked with :model-value
- Replace NcCheckboxRadioSwitch @update:checked with @update:model-value
- Replace NcButton type="primary|secondary|tertiary" with variant prop
- Bump @nextcloud/vue minimum version to ^9.3.3
These changes address deprecated APIs removed in @nextcloud/vue v9.0.0:
- :checked/:update:checked was replaced by v-model/modelValue pattern
- type prop for button variants was replaced by variant prop
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 13:09:27 +01:00
renovate-bot-cbcoutinho[bot] and GitHub
c9bf3d0b52
chore(deps): update docker.io/library/nextcloud docker tag to v32.0.5
2026-01-17 11:11:53 +00:00
renovate-bot-cbcoutinho[bot] and GitHub
9f64609722
chore(deps): update anthropics/claude-code-action action to v1.0.30
2026-01-17 11:11:35 +00:00
renovate-bot-cbcoutinho[bot] and GitHub
89becbb92b
chore(deps): update docker.io/library/python:3.12-slim-trixie docker digest to 5e2dbd4
2026-01-17 11:11:30 +00:00
Chris Coutinho and Claude Opus 4.5
fef13a6d3d
test(astrolabe): add comprehensive unit tests for token refresh and storage
...
Add unit tests addressing reviewer feedback on test coverage gaps:
IdpTokenRefresher::refreshAccessToken() tests:
- Token refresh with internal Nextcloud OIDC
- Token refresh with external IdP (Keycloak)
- Error handling: missing client_secret, missing MCP URL
- Error handling: invalid responses, HTTP exceptions
- Token rotation validation (missing refresh_token in response)
McpTokenStorage tests (multi-user basic auth):
- OAuth token storage, retrieval, deletion
- Token expiration checks with 60-second buffer
- getAccessToken with automatic refresh callback
- App password storage for background sync
- hasBackgroundSyncAccess() for both OAuth and app passwords
- Background sync type detection and timestamp tracking
Test coverage: 41 tests, 76 assertions (up from 5 tests)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 11:00:45 +01:00
Chris Coutinho and Claude Opus 4.5
c4973290a6
fix(astrolabe): resolve CI failures for code quality checks
...
- Fix PHP CS Fixer issues (single quotes, indentation)
- Add typed property declarations to ApiController
- Add Psalm baseline to suppress 517 pre-existing errors
- Fix workflow name references (astroglobe → astrolabe)
The CI workflow was previously watching a non-existent path and never
ran. After fixing the path trigger, these pre-existing code quality
issues were discovered. The Psalm baseline allows CI to pass while
tracking technical debt for incremental resolution.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 10:56:36 +01:00
Chris Coutinho and Claude Opus 4.5
c018268681
docs(astrolabe): add config docs and unit tests for internal URL
...
Address PR #487 reviewer feedback:
- Add documentation for `astrolabe_internal_url` config option
- Add unit tests for `IdpTokenRefresher::getNextcloudBaseUrl()`
- Fix CI workflow paths (astroglobe -> astrolabe)
- Add PHPUnit job to CI workflow for PHP 8.1, 8.2, 8.3
- Remove obsolete ApiTest that tested non-existent method
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 22:24:43 +01:00
Chris Coutinho and Claude Opus 4.5
79cfb65590
fix(astrolabe): use internal URL for OAuth token refresh
...
The IdpTokenRefresher was incorrectly using overwrite.cli.url (the
external URL like http://localhost:8080 ) for internal token refresh
requests. This URL is not accessible from inside Docker containers
since port 8080 is only mapped on the host machine.
Changed getNextcloudBaseUrl() to:
- Always use http://localhost (internal port 80) by default
- Added optional astrolabe_internal_url config for custom setups
- Removed overwrite.cli.url usage (intended for external URLs only)
This fixes 401 errors in Astrolabe semantic search when OAuth tokens
need to be refreshed in containerized deployments.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 19:42:54 +01:00
github-actions[bot]
9750845092
bump: version 0.57.5 → 0.57.6
2026-01-16 17:14:58 +00:00
Chris Coutinho and GitHub
7e8171132b
Merge pull request #484 from cbcoutinho/renovate/docker.io-library-mariadb-lts
...
chore(deps): update docker.io/library/mariadb:lts docker digest to 345fa26
2026-01-16 18:14:40 +01:00
Chris Coutinho and GitHub
910792178b
Merge pull request #485 from cbcoutinho/renovate/docker.io-library-nextcloud-32.x
...
chore(deps): update docker.io/library/nextcloud docker tag to v32.0.4
2026-01-16 18:14:29 +01:00
Chris Coutinho and GitHub
80c5647f3e
Merge pull request #486 from cbcoutinho/renovate/ghcr.io-astral-sh-uv-0.x
...
chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.26
2026-01-16 18:14:21 +01:00
renovate-bot-cbcoutinho[bot] and GitHub
a306549907
chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.9.26
2026-01-16 11:11:51 +00:00
renovate-bot-cbcoutinho[bot] and GitHub
295e3d2783
chore(deps): update docker.io/library/nextcloud docker tag to v32.0.4
2026-01-16 11:11:33 +00:00
renovate-bot-cbcoutinho[bot] and GitHub
47dcdf8b61
chore(deps): update docker.io/library/mariadb:lts docker digest to 345fa26
2026-01-16 11:11:15 +00:00
github-actions[bot]
8c6ae9ff33
bump: version 0.57.4 → 0.57.5
2026-01-16 10:28:00 +00:00
Chris Coutinho and GitHub
04fee00a0b
Merge pull request #482 from cbcoutinho/renovate/quay.io-keycloak-keycloak-26.x
...
chore(deps): update quay.io/keycloak/keycloak docker tag to v26.5.1
2026-01-16 11:27:39 +01:00
github-actions[bot]
9e1fc1ebeb
bump: version 0.8.1 → 0.8.2
2026-01-16 09:54:03 +00:00
github-actions[bot]
6eceefdacc
bump: version 0.57.3 → 0.57.4
2026-01-16 09:54:03 +00:00
github-actions[bot]
b147814cc4
bump: version 0.61.3 → 0.61.4
2026-01-16 09:54:02 +00:00
Chris Coutinho and GitHub
5a58c81626
Merge pull request #483 from cbcoutinho/fix/astrolabe-oauth-hybrid-mode
...
fix(astrolabe): fix OAuth flow for hybrid mode
2026-01-16 10:53:45 +01:00
Chris Coutinho and Claude Opus 4.5
1cc460b0d8
fix(astrolabe): Address reviewer feedback for hybrid mode
...
Addresses code review feedback:
Personal.php:
- Consolidate template variables to use camelCase consistently
- Remove duplicate snake_case variables (auth_mode, supports_app_passwords)
- Add oauthUrl to standard OAuth mode parameters (fixes fallback issue)
- Add requesttoken for CSRF protection
personal.php (template):
- Use null coalescing for safe variable access
- Reuse computed $isHybridMode variable instead of duplicate check
- Remove complex fallback URL logic (oauthUrl now always provided)
IdpTokenRefresher.php:
- Use Nextcloud's overwrite.cli.url config when available
- Fall back to http://localhost for container deployments
- Better supports non-containerized environments
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 10:44:52 +01:00