Chris Coutinho
f4759e424d
feat: add webhook management UI and BeforeNodeDeletedEvent support
...
Added comprehensive webhook management capabilities including:
Webhook Client & API:
- Added WebhooksClient for Nextcloud webhooks API integration
- Create, list, update, and delete webhooks programmatically
- Support for event filters in webhook registration
Webhook Presets:
- Added preset system for common webhook configurations
- notes_sync: BeforeNodeDeletedEvent for Notes file operations
- calendar_sync: Calendar events (create, update, delete)
- deck_sync: Deck card operations
- files_sync: File system changes
- forms_sync: Form submissions (conditional)
- Filter presets by installed apps
Admin UI:
- Added multi-pane app view with tabs (User Info, Vector Sync, Webhooks)
- Webhooks tab for admin users only
- Enable/disable preset webhooks via UI
- View currently registered webhooks
- Uses htmx for dynamic loading and Alpine.js for tab state
- Admin permission checking via OCS API
CLI Improvements:
- Refactored CLI to separate module (cli.py)
- Updated entry point in pyproject.toml
BeforeNodeDeletedEvent Fix:
- Updated ADR-010 to document NodeDeletedEvent issue
- BeforeNodeDeletedEvent includes node.id before deletion
- NodeDeletedEvent lacks node.id (file already deleted)
- Implemented per Nextcloud maintainer recommendation
Testing:
- Added comprehensive webhook client tests
- Added webhook preset filtering tests
- Added admin permission tests
Configuration:
- Updated docker-compose.yml Qdrant settings
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-11 20:35:08 +01:00
Chris Coutinho
c787abf2f3
fix: add retry logic for ETag conflicts in category change test
...
The test_attachments_category_change_handling test was failing in CI with
HTTP 412 Precondition Failed errors. This is caused by the background vector
scanner (runs every 10 seconds) modifying notes between when the test fetches
the ETag and when it attempts to update the category.
Solution: Added retry logic (up to 3 attempts) that refetches the latest ETag
and retries the update operation when encountering 412 errors. This handles
the race condition gracefully while still catching genuine errors.
2025-11-10 07:41:02 +01:00
Chris Coutinho
2f1bd1bbe9
test: Move client integration tests to mocked unit tests
2025-10-24 05:50:25 +02:00
Chris Coutinho
d452684535
feat: Split read/write scopes into app:read/write scopes
2025-10-24 04:38:49 +02:00
Chris Coutinho
d55e5708c7
ci: fix imports
2025-10-24 01:04:30 +02:00
Chris Coutinho
a143123acc
fix(caldav): Check that calendar exists after creation to avoid race condition
...
Verify that field preservation tests still operate
2025-10-19 23:44:39 +02:00
Chris Coutinho
92e18825bc
feat(caldav): Add support for tasks
2025-10-19 18:02:43 +02:00
Chris Coutinho
6158a890af
feat(webdav): Add search and list favorite response tools
2025-10-18 22:02:26 +02:00
Chris Coutinho
1459fe9bc8
test: Replace pytest-asyncio plugin fixtures with anyio fixtures
2025-10-18 22:02:25 +02:00
Chris Coutinho
83917b3786
perf(notes): Improve notes search performance using async iterators
2025-10-18 22:02:19 +02:00
Chris Coutinho
27519d0f62
test: Replace http server for recipes with nginx container
2025-10-17 04:30:03 +02:00
Chris Coutinho
0fd32ecd34
test: Fix test networking
2025-10-17 03:58:36 +02:00
Chris Coutinho
9de59db718
feat(cookbook): Add full Cookbook app support with 13 tools and 2 resources
...
- Import recipes from URLs using schema.org metadata
- Full CRUD operations for recipes
- Search, categorize, and organize recipes
- Manage keywords/tags and categories
- Configure app settings and trigger reindexing
2025-10-17 03:08:16 +02:00
Chris Coutinho
51d1f075f5
test: Remove duplicated/interactive testing fixtures
...
All integration tests now run without interactive browser usage, simplifying CI and testing infrastructure
2025-10-16 19:46:29 +02:00
Chris Coutinho
5db02313a1
test: Update share client to fix test, update passwords
2025-10-15 10:35:22 +02:00
Chris Coutinho
b50e212f05
test: Add tests for sharing/groups
2025-10-15 03:46:01 +02:00
Chris Coutinho
8652684466
ci: [skip ci] Move oauth mcp tests to server subdir
2025-10-14 12:03:03 +02:00
Chris Coutinho
72ace9da9e
ci: [skip ci] Move tests to subdirs
2025-10-14 02:08:45 +02:00