Commit Graph
304 Commits
Author SHA1 Message Date
github-actions[bot] d766f3c014 bump: version 0.72.3 → 0.72.4 2026-04-16 22:38:24 +00:00
github-actions[bot] 9b6b554155 bump: version 0.72.2 → 0.72.3 2026-04-15 10:22:31 +00:00
github-actions[bot] fea84dd646 bump: version 0.72.1 → 0.72.2 2026-04-14 19:52:21 +00:00
renovate-bot-cbcoutinho[bot]andGitHub e72a751fdb chore(deps): update dependency uv_build to >=0.11.5,<0.12.0 2026-04-08 22:17:06 +00:00
github-actions[bot] 214fead311 bump: version 0.72.0 → 0.72.1 2026-04-07 23:28:00 +00:00
github-actions[bot] 107fe7911f bump: version 0.71.0 → 0.72.0 2026-04-07 22:26:11 +00:00
github-actions[bot] 4922fb3ac5 bump: version 0.70.4 → 0.71.0 2026-04-07 22:10:12 +00:00
github-actions[bot] 98a0ba3745 bump: version 0.70.3 → 0.70.4 2026-04-07 22:03:06 +00:00
github-actions[bot] 776e2ce693 bump: version 0.70.2 → 0.70.3 2026-04-07 20:23:42 +00:00
Chris CoutinhoandGitHub 23995ce64d Merge pull request #675 from cbcoutinho/renovate/mcp-1.x
fix(deps): update dependency mcp to >=1.27,<1.28
2026-04-07 22:23:22 +02:00
github-actions[bot] 3af670ace5 bump: version 0.70.1 → 0.70.2 2026-04-07 18:32:27 +00:00
renovate-bot-cbcoutinho[bot]andGitHub c84df249a0 fix(deps): update dependency mcp to >=1.27,<1.28 2026-04-07 16:19:01 +00:00
github-actions[bot] c2b19a2983 bump: version 0.70.0 → 0.70.1 2026-04-07 16:08:16 +00:00
github-actions[bot] 6c7b0a81b3 bump: version 0.69.0 → 0.70.0 2026-04-07 15:01:44 +00:00
Chris Coutinho f9f637b1ce Merge remote-tracking branch 'origin/master' into chore/remove-helm-chart 2026-04-07 16:32:53 +02:00
Chris CoutinhoandClaude Opus 4.6 c4b74e7e20 chore: remove helm chart (migrated to cbcoutinho/helm-charts)
The helm chart has been migrated to a dedicated repository at
https://github.com/cbcoutinho/helm-charts. This removes the chart
source, release workflow, bump script, and updates all documentation
to point to the new repository.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 16:31:35 +02:00
github-actions[bot] 1276de8e22 bump: version 0.68.4 → 0.69.0 2026-04-07 13:50:09 +00:00
Chris CoutinhoandGitHub 010c598b24 Merge pull request #680 from cbcoutinho/docs/adr-024-dynaconf-config-management
docs: ADR-025 dynaconf configuration management
2026-04-07 15:49:46 +02:00
github-actions[bot] 806b9decbc bump: version 0.68.3 → 0.68.4 2026-04-07 12:18:05 +00:00
Chris Coutinho f34c74afbc Merge remote-tracking branch 'origin/master' into docs/adr-024-dynaconf-config-management 2026-04-05 19:42:26 +02:00
github-actions[bot] 9f632fa960 bump: version 0.68.2 → 0.68.3 2026-04-05 17:40:51 +00:00
Chris CoutinhoandClaude Opus 4.6 e28aa6eb3e docs: address review feedback on ADR-024 dynaconf configuration management
Address all 9 review points from PR #680:
- Fix post_hooks code examples to use correct return-dict signature
- Expand test isolation section with fixture factory, DynaconfDict, and
  reload patterns
- Document ignore_unknown_envvars silent failure mode in Negative
  Consequences and add env var audit to Phase 1 checklist
- Fix NEXTCLOUD_HOST validator to be unconditional (required in all modes)
- Document environments=True edge cases (unset mode, ENV_FOR_DYNACONF
  shadowing)
- Add upper bound to dynaconf version pin (>=3.2.13,<4.0)
- Tighten Pydantic Settings comparison to acknowledge 2.x TOML support
- Make .gitignore additions explicit in Phase 1 checklist
- Clarify that shell-level .env loading still works with load_dotenv=False

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 18:34:11 +02:00
Chris CoutinhoandClaude Opus 4.6 5d0e4addd0 build: add dynaconf dependency for ADR-024 configuration management
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 15:00:17 +02:00
github-actions[bot] cf34f202a6 bump: version 0.68.1 → 0.68.2 2026-04-04 08:32:02 +00:00
Chris CoutinhoandClaude Opus 4.6 aeddc28ca6 refactor: remove oauth profile, migrate MCP/OAuth tests to login-flow
Remove the oauth Docker Compose profile (mcp-oauth service, port 8001)
which used OAuth bearer tokens for direct NC API access, requiring
upstream OIDC patches. All NC access should use app passwords via
Login Flow v2 or BasicAuth.

Changes:
- Remove mcp-oauth service from docker-compose.yml
- Remove oauth mode from CI test matrix
- Delete oauth pass-through tests (core, permissions, token exchange)
- Delete oauth-specific tests (elicitation, NC PHP app, astrolabe)
- Migrate MCP/OAuth integration tests to login-flow profile:
  - DCR lifecycle, deletion, token type tests
  - Scope authorization (tool filtering) tests
  - Token introspection tests
- Fix flaky consent screen automation: replace JS btn.click() with
  Playwright native click + retry (handles Vue.js event binding race)
- Add scope-filtered OAuth client fixtures to login-flow conftest
- Keep keycloak profile for external IdP testing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 16:05:14 +02:00
github-actions[bot] 0c7384e52c bump: version 0.68.0 → 0.68.1 2026-04-01 07:27:50 +00:00
github-actions[bot] d3ced16ba9 bump: version 0.67.0 → 0.68.0 2026-03-31 15:24:43 +00:00
github-actions[bot] 3e78510295 bump: version 0.66.2 → 0.67.0 2026-03-29 19:00:36 +00:00
github-actions[bot] 39138ec117 bump: version 0.66.1 → 0.66.2 2026-03-29 18:58:12 +00:00
github-actions[bot] 1948360b83 bump: version 0.66.0 → 0.66.1 2026-03-28 09:53:31 +00:00
github-actions[bot] 35abc4eaae bump: version 0.65.4 → 0.66.0 2026-03-28 08:41:11 +00:00
Chris CoutinhoandGitHub c56249dcc4 Merge pull request #647 from cbcoutinho/feature/collectives-support
feat: add Nextcloud Collectives app support
2026-03-28 09:40:50 +01:00
github-actions[bot] 83e430dd66 bump: version 0.65.3 → 0.65.4 2026-03-27 14:18:07 +00:00
Chris CoutinhoandClaude Opus 4.6 b6d01fc0bd fix: pin starlette<1.0 to prevent startup crash (#648)
Starlette 1.0.0 removed the @app.middleware() decorator, which breaks
nextcloud-mcp-server on fresh installs. Pin starlette<1.0 until we
address the full set of breaking changes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 19:30:57 +01:00
Chris CoutinhoandClaude Opus 4.6 95edd9ba8e fix: add trash/delete collective tools and address review feedback (round 4)
Add collectives_trash_collective and collectives_delete_collective MCP
tools with proper destructiveHint annotations. Refactor integration test
fixture to use MCP tools for cleanup instead of direct httpx/OCS calls.
Optimize _get_ocs_headers() to class-level constant.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 07:36:40 +01:00
github-actions[bot] 98f7740a54 bump: version 0.65.2 → 0.65.3 2026-03-22 21:01:05 +00:00
Chris CoutinhoandClaude Opus 4.6 581718ee42 build: update qdrant-client to upstream >=1.17.0
The fork (cbcoutinho/qdrant-client fix/fusion-score-threshold) has been
merged upstream as PR #1138 and released in v1.17.0. Remove the git source
override in [tool.uv.sources] to unblock clean PyPI publishing, since git
dependencies are excluded from wheels.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:18:38 +01:00
Chris CoutinhoandClaude Opus 4.6 7956c3c061 refactor: remove Smithery deployment mode
Smithery is no longer a supported deployment mode. Remove all Smithery-specific
code paths, middleware, configuration, and tests. This simplifies the codebase
by eliminating DeploymentMode enum, SmitheryConfigMiddleware, session config
context variables, and the smithery_main entrypoint.

Files deleted: Dockerfile.smithery, smithery.yaml, smithery_main.py
ADR-016 retained with deprecated status for historical reference.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 20:15:47 +01:00
github-actions[bot] a7796d5177 bump: version 0.65.1 → 0.65.2 2026-03-22 17:42:29 +00:00
github-actions[bot] dd73558b87 bump: version 0.65.0 → 0.65.1 2026-03-21 18:26:57 +00:00
Chris CoutinhoandClaude Opus 4.6 36a664dda4 fix(caldav): migrate to upstream caldav v3.0.1 to fix href handling (#629)
When Nextcloud stores CalDAV objects, the server-side filename may differ
from the VTODO/VEVENT UID. The caldav fork constructed object URLs from
the UID instead of the actual <d:href> from REPORT responses, causing
list_todos to return wrong hrefs, delete_todo to silently no-op, and
update_todo to fail.

Upstream caldav v3.0.1 fixes this in _async_request_report_build_resultlist
by passing url=self.url.join(url) when constructing result objects.

Key changes:
- Replace caldav fork with upstream caldav>=3.0.1,<4.0
- Update imports to caldav.aio module
- Add _maybe_await() helper for v3's dual-mode methods that return
  either objects or coroutines depending on async context
- Add _async_object_by_uid() to work around upstream's get_object_by_uid
  not being async-aware (it iterates a coroutine synchronously)
- Adapt save_event/save_todo (no longer return tuples)
- Pass url=calendar.url.join(href) in _search_events_by_date
- Pass include_completed=True in list_todos to match previous behavior
- Add integration test for filename != UID scenario

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 18:45:24 +01:00
github-actions[bot] 8b16d79d6c bump: version 0.64.5 → 0.65.0 2026-03-03 08:42:10 +00:00
Chris CoutinhoandGitHub 45cc4c68fc Merge pull request #589 from cbcoutinho/feat/docker-compose-profiles-login-flow
feat: Docker Compose profiles and Login Flow v2 integration tests
2026-03-03 09:41:48 +01:00
github-actions[bot] 1176479ec1 bump: version 0.64.4 → 0.64.5 2026-03-03 08:33:47 +00:00
Chris CoutinhoandClaude Opus 4.6 16cd2e27cb fix(ci): fix PHP gating, add multi-user-basic matrix entry, upload debug artifacts
PHP setup was gated behind needs-playwright but Astrolabe build needs
composer unconditionally. Add multi-user-basic CI matrix entry with
proper marker filtering. Upload Playwright screenshots and service logs
as artifacts on failure for easier debugging.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 11:02:39 +01:00
Chris CoutinhoandClaude Opus 4.6 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 CoutinhoandClaude Opus 4.6 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] 37141ea79f bump: version 0.64.3 → 0.64.4 2026-02-26 15:42:35 +00:00
renovate-bot-cbcoutinho[bot]andGitHub 3edc226d17 fix(deps): update dependency icalendar to v7 2026-02-24 17:17:49 +00:00
github-actions[bot] b2773317ef bump: version 0.64.2 → 0.64.3 2026-02-21 08:38:07 +00:00