The module's namespace and directory now match the top-level service
name (`advisor`) instead of one of its resource names (`insights`):
- src/Appwrite/Platform/Modules/Insights -> .../Modules/Advisor
- src/Appwrite/Insights -> src/Appwrite/Advisor
- tests/unit/Insights -> tests/unit/Advisor
- Route group label flipped from `'insights'` to `'advisor'`
- Section-header comments aligned
Resource names (`insights`, `reports`, `insightCTAs`) and the
`Insight*`/`Report` response models stay — those are the resources the
service exposes, not the service itself.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace directive-extraction approach with word-boundary regex matching
so plain-word patterns like "skip appwrite" and "appwrite skip" work
alongside bracket directives. Use \s+ between word tokens (required
space) and \s* only after ":" tokens (git trailer flexibility).
Add tests for "skip appwrite" and "appwrite skip" with case insensitivity.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add providerCommitSkipPatterns array field to functions and sites.
Any commit message containing one of the patterns (case-insensitive
substring) skips the VCS-triggered deployment.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CI lacks _APP_MESSAGE_PUSH_TEST_DSN, so new DSN(null) threw a TypeError
before the existing skip guard could run. Match the pattern used by
testSendPushNotification: gate on the env var first, then construct the DSN.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Each SDK method now points at its own markdown file under
docs/references/advisor/ instead of an inline heredoc, matching the
house convention used by every other module.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
utopia-php/migration 1.10.2 stopped propagating the source DSN to the
destination's `_databases.database` and added an opt-in `getDatabaseDSN`
resolver. Without it, the destination DB row gets a blank `database`
field, so reads on documentsdb/vectorsdb fall back to the project's
main DSN (mongodb in dedicated mode) and fail with "Vector types are
not supported by the current database".
Pass a resolver that builds the proper DSN from the destination
project's pools per database type, mirroring the logic
`Database/Create.php` already uses on first creation. Made
`constructDatabaseDSNFromProjectDatabase` public+static so the worker
can reuse it instead of duplicating the pool-selection logic.
This is a 1.9.x regression introduced by the migration 1.10.1 -> 1.10.2
bump; affects every PR that runs MongoDB-dedicated Migrations tests.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>