Chris Coutinho
2d46959d01
fix(test): fix 17 pre-existing unit test failures and add astrolabe CI build
...
Unit test fixes:
- test_userinfo_routes: patch nextcloud_httpx_client instead of httpx.AsyncClient
- test_instrument_tool: patch trace_operation in metrics module (where imported)
- test_management_app_password_endpoints: patch nextcloud_httpx_client and
get_settings at correct import locations
- test_management_status_endpoint: patch detect_auth_mode and get_settings at
correct import locations (api.management, not config/config_validators)
- test_token_exchange: fix TokenBrokerService constructor args (client_id/
client_secret instead of encryption_key)
CI:
- Add Node.js setup and astrolabe build step (composer + npm ci + npm run build)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 21:53:06 +01:00
Chris Coutinho
59fdcd123a
fix(ci): keep third_party mount, always build submodules in CI
...
The third_party volume mount is required for astrolabe/notes/oidc
development. Always checkout submodules and build the OIDC app in
all CI matrix jobs since the app container needs it.
Remove the docker-compose.oidc.yml override (no longer needed).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 20:51:36 +01:00
Chris Coutinho
b79c54cc6a
fix(ci): revert accidental third_party mount, use compose override for OIDC
...
The third_party:/opt/apps volume was accidentally uncommented in
docker-compose.yml. Without submodules checked out, this empty mount
breaks the Notes app installation hook in CI.
Fix: keep the mount commented in docker-compose.yml and add a separate
docker-compose.oidc.yml override that's only used for OIDC-requiring
profiles (oauth, login-flow) in CI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 20:48:07 +01:00
Chris Coutinho
fe3fbe95a1
fix(ci): don't block integration matrix on unit-test failures
...
Unit tests have pre-existing failures unrelated to deployment mode
testing. Run integration matrix after linting only so the matrix
can expand and test each profile independently.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 20:39:45 +01:00
Chris Coutinho
8fe7d81e57
ci: use matrix strategy for deployment mode integration tests
...
Replace the single integration-test job with a matrix that tests each
deployment mode independently using Docker Compose profiles:
- single-user: smoke + integration tests (port 8000)
- oauth: OAuth flow tests with Playwright (port 8001)
- login-flow: Login Flow v2 tests with Playwright (port 8004)
Unit tests run separately without Docker. OIDC app build and Playwright
install are conditional based on the mode. Service logs are captured on
failure for debugging.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 20:35:47 +01:00
Chris Coutinho
8b5c2395b5
feat: add Docker Compose profiles and Login Flow v2 service
...
Add selective service startup via Docker Compose profiles so each MCP
deployment mode runs independently. Also add the new mcp-login-flow
service (port 8004) for Login Flow v2 authentication (ADR-022).
Profile assignments:
- single-user: mcp (port 8000)
- multi-user-basic: mcp-multi-user-basic (port 8003)
- oauth: mcp-oauth (port 8001)
- keycloak: keycloak + mcp-keycloak (port 8002)
- login-flow: mcp-login-flow (port 8004)
Infrastructure services (db, redis, app, recipes) always start.
Integration tests cover the full Login Flow v2 provisioning flow:
OAuth → browser login → app password → Nextcloud API access for
notes, calendar, contacts, files, deck, and cookbook operations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 20:33:54 +01:00
github-actions[bot]
5796e2ba54
bump: version 0.57.85 → 0.57.86
nextcloud-mcp-server-0.57.86
2026-02-26 15:42:35 +00:00
github-actions[bot]
37141ea79f
bump: version 0.64.3 → 0.64.4
v0.64.4
2026-02-26 15:42:35 +00:00
Chris Coutinho
68126f6fe3
Merge pull request #555 from cbcoutinho/renovate/icalendar-7.x
...
fix(deps): update dependency icalendar to v7
2026-02-26 16:42:12 +01:00
github-actions[bot]
78b934ffa6
bump: version 0.57.84 → 0.57.85
nextcloud-mcp-server-0.57.85
2026-02-25 12:43:46 +00:00
Chris Coutinho
01a9ad5278
Merge pull request #588 from cbcoutinho/renovate/anthropics-claude-code-action-1.x
...
chore(deps): update anthropics/claude-code-action action to v1.0.60
2026-02-25 13:43:30 +01:00
github-actions[bot]
b67a566902
bump: version 0.57.83 → 0.57.84
nextcloud-mcp-server-0.57.84
2026-02-25 11:35:38 +00:00
Chris Coutinho
c9e8a56355
Merge pull request #584 from cbcoutinho/renovate/docker.io-library-nextcloud-32.0.6
...
chore(deps): update docker.io/library/nextcloud:32.0.6 docker digest to dcf9c60
2026-02-25 12:35:22 +01:00
renovate-bot-cbcoutinho[bot]
785ba5bf09
chore(deps): update anthropics/claude-code-action action to v1.0.60
2026-02-25 11:18:33 +00:00
renovate-bot-cbcoutinho[bot]
159ffb6110
chore(deps): update docker.io/library/nextcloud:32.0.6 docker digest to dcf9c60
2026-02-25 11:18:25 +00:00
github-actions[bot]
70139c4782
bump: version 0.57.82 → 0.57.83
nextcloud-mcp-server-0.57.83
2026-02-25 09:14:58 +00:00
Chris Coutinho
a922187489
Merge pull request #586 from cbcoutinho/renovate/anthropics-claude-code-action-1.x
...
chore(deps): update anthropics/claude-code-action action to v1.0.59
2026-02-25 10:14:43 +01:00
github-actions[bot]
1ba6a142f5
bump: version 0.57.81 → 0.57.82
nextcloud-mcp-server-0.57.82
2026-02-25 08:42:21 +00:00
Chris Coutinho
79478f2483
Merge pull request #585 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 39e4e1c
2026-02-25 09:42:03 +01:00
github-actions[bot]
4721a5da52
bump: version 0.57.80 → 0.57.81
nextcloud-mcp-server-0.57.81
2026-02-25 07:26:59 +00:00
Chris Coutinho
be2b683604
Merge pull request #587 from cbcoutinho/renovate/ghcr.io-astral-sh-uv-0.x
...
chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.6
2026-02-25 08:26:45 +01:00
renovate-bot-cbcoutinho[bot]
9fd3d92a0f
chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.6
2026-02-25 05:15:47 +00:00
renovate-bot-cbcoutinho[bot]
ceebda071f
chore(deps): update anthropics/claude-code-action action to v1.0.59
2026-02-25 05:15:42 +00:00
renovate-bot-cbcoutinho[bot]
26fc48dc46
chore(deps): update docker.io/library/python:3.12-slim-trixie docker digest to 39e4e1c
2026-02-25 05:15:37 +00:00
renovate-bot-cbcoutinho[bot]
3edc226d17
fix(deps): update dependency icalendar to v7
2026-02-24 17:17:49 +00:00
github-actions[bot]
7384b47795
bump: version 0.57.79 → 0.57.80
nextcloud-mcp-server-0.57.80
2026-02-24 12:44:15 +00:00
Chris Coutinho
b62d275dc9
Merge pull request #583 from cbcoutinho/renovate/anthropics-claude-code-action-1.x
...
chore(deps): update anthropics/claude-code-action action to v1.0.57
2026-02-24 13:43:57 +01:00
renovate-bot-cbcoutinho[bot]
a0fa0230ab
chore(deps): update anthropics/claude-code-action action to v1.0.57
2026-02-24 11:15:33 +00:00
github-actions[bot]
7314097483
bump: version 0.57.78 → 0.57.79
nextcloud-mcp-server-0.57.79
2026-02-24 09:34:47 +00:00
Chris Coutinho
3d070f74c5
Merge pull request #581 from cbcoutinho/renovate/ghcr.io-astral-sh-uv-0.x
...
chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.5
2026-02-24 10:34:30 +01:00
github-actions[bot]
80366a4e1e
bump: version 0.57.77 → 0.57.78
nextcloud-mcp-server-0.57.78
2026-02-24 08:21:58 +00:00
Chris Coutinho
91941a9ece
Merge pull request #582 from cbcoutinho/renovate/anthropics-claude-code-action-1.x
...
chore(deps): update anthropics/claude-code-action action to v1.0.56
2026-02-24 09:21:39 +01:00
github-actions[bot]
8fd6f4158f
bump: version 0.57.76 → 0.57.77
nextcloud-mcp-server-0.57.77
2026-02-24 08:19:59 +00:00
Chris Coutinho
b8e6539b6f
Merge pull request #580 from cbcoutinho/renovate/downloads.unstructured.io-unstructured-io-unstructured-api-latest
...
chore(deps): update downloads.unstructured.io/unstructured-io/unstructured-api:latest docker digest to ba6cb07
2026-02-24 09:19:15 +01:00
github-actions[bot]
fe53e93fe9
bump: version 0.57.75 → 0.57.76
nextcloud-mcp-server-0.57.76
2026-02-24 07:51:52 +00:00
Chris Coutinho
71d4c44b05
Merge pull request #579 from cbcoutinho/renovate/docker.io-library-redis-alpine
...
chore(deps): update docker.io/library/redis:alpine docker digest to 2afba59
2026-02-24 08:51:37 +01:00
renovate-bot-cbcoutinho[bot]
8261048741
chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.10.5
2026-02-24 05:14:52 +00:00
renovate-bot-cbcoutinho[bot]
6443aca743
chore(deps): update anthropics/claude-code-action action to v1.0.56
2026-02-24 05:14:46 +00:00
renovate-bot-cbcoutinho[bot]
a1b5e676e9
chore(deps): update downloads.unstructured.io/unstructured-io/unstructured-api:latest docker digest to ba6cb07
2026-02-23 23:14:33 +00:00
renovate-bot-cbcoutinho[bot]
1d9168f614
chore(deps): update docker.io/library/redis:alpine docker digest to 2afba59
2026-02-23 23:14:28 +00:00
github-actions[bot]
9229440a58
bump: version 0.57.74 → 0.57.75
nextcloud-mcp-server-0.57.75
2026-02-23 06:08:54 +00:00
Chris Coutinho
e507f29e83
Merge pull request #578 from cbcoutinho/renovate/ollama-1.x
...
chore(deps): update helm release ollama to v1.45.0
2026-02-23 07:08:40 +01:00
renovate-bot-cbcoutinho[bot]
5ac6d8d396
chore(deps): update helm release ollama to v1.45.0
2026-02-23 05:14:16 +00:00
github-actions[bot]
ab71003c5d
bump: version 0.57.73 → 0.57.74
nextcloud-mcp-server-0.57.74
2026-02-21 08:53:06 +00:00
Chris Coutinho
726b71eea1
Merge pull request #575 from cbcoutinho/renovate/quay.io-keycloak-keycloak-26.x
...
chore(deps): update quay.io/keycloak/keycloak docker tag to v26.5.4
2026-02-21 09:52:51 +01:00
github-actions[bot]
3e50924169
bump: version 0.57.72 → 0.57.73
nextcloud-mcp-server-0.57.73
2026-02-21 08:38:08 +00:00
github-actions[bot]
b2773317ef
bump: version 0.64.2 → 0.64.3
v0.64.3
2026-02-21 08:38:07 +00:00
Chris Coutinho
dce3ca9a70
Merge pull request #574 from cbcoutinho/fix/wrap-list-returns-in-response-models
...
fix: wrap raw list returns in response models (#568 )
2026-02-21 09:37:48 +01:00
Chris Coutinho
18e5baf2a5
fix: address PR #574 fourth review round
...
- Use lowercase generics (list[...]) in new deck response models
- Add clarifying comment on AddressBook.uri slug semantics
- Fall back calendar_display_name to calendar_name when absent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-21 09:36:14 +01:00
github-actions[bot]
24bc29ea64
bump: version 0.57.71 → 0.57.72
nextcloud-mcp-server-0.57.72
2026-02-20 18:23:30 +00:00