fix(notifications): resolve an item's relative url, and document the CI trigger
Some checks failed
PR Checks / android-build (pull_request) Failing after 42m5s
Some checks failed
PR Checks / android-build (pull_request) Failing after 42m5s
Two things the live rig found, and the README half of the trigger change. Phase 7 specifies an inbox item's `url` is RELATIVE-ONLY and validates it as such — right for a browser already on the site, a dead link on a phone. The first cut here only opened `http(s)`-prefixed strings, so on the rig every link in the inbox did nothing at all. `InboxViewModel.linkFor` now resolves against the configured base with OkHttp's `HttpUrl.resolve`, which absolutises the path and returns null for anything that would not end up http(s) — so a `javascript:` or `intent:` url in a notification body opens nothing. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
13
README.md
13
README.md
@@ -48,10 +48,15 @@ any shard's website — there is no compiled-in API host.
|
||||
|
||||
## CI
|
||||
|
||||
`.gitea/workflows/pr-checks.yml` gates PRs into `main` with `./gradlew lint test assembleDebug` on the
|
||||
org's self-hosted runner (JDK 17 + Android SDK). Debug builds are auto-signed, so the gate needs no
|
||||
secrets. **This pipeline is verified green end-to-end on the runner** (M0). A signed **release** APK
|
||||
attached to a Gitea release comes at M6.
|
||||
`.gitea/workflows/pr-checks.yml` gates PRs into `main` **and `edge`** with
|
||||
`./gradlew lint test assembleDebug` on the org's self-hosted runner (JDK 17 + Android SDK). Debug
|
||||
builds are auto-signed, so the gate needs no secrets. **This pipeline is verified green end-to-end on
|
||||
the runner** (M0). A signed **release** APK attached to a Gitea release comes at M6.
|
||||
|
||||
**`edge` is in the trigger deliberately**: a workstream that lands its phases on a working branch
|
||||
before one cutover PR into `main` otherwise gets no CI at all until the cutover — which is what
|
||||
happened to all nine M12 phase PRs (`docs/website/ENGAGEMENT.md` §7.1 Q8). `sonarqube.yml` is
|
||||
unaffected: it is a push-on-`main` analysis, not a PR gate.
|
||||
|
||||
The workflow carries a few runner-specific accommodations (each explained in comments in the file),
|
||||
because this self-hosted runner differs from a stock GitHub runner:
|
||||
|
||||
Reference in New Issue
Block a user