|
6 | 6 | # the oldest entries to `session_context.archive.md` (not read by default). The |
7 | 7 | # "Golden Context" block at the bottom is stable across sessions; keep it here. |
8 | 8 |
|
| 9 | +## 2026-06-10 — Fixed Update Changelog workflow crash (failing on every main push since 2026-06-05) |
| 10 | +- PR #5769: `.github/workflows/update-changelog.yml` died with `TAG_NAMES: bad array subscript` once v2.7.14 went prod and its `-internal.*`/`-open.*` channel tags were cleaned up — zero channel tags means N=0 and `${TAG_NAMES[$((N-1))]:-$PROD_TAG}` indexes [-1] on an empty array, fatal under `bash -e` before the `:-` fallback applies. Replaced with an explicit `if (( N > 0 ))` branch. |
| 11 | +- Second latent bug fixed in the same step: the final `{ ... } > /tmp/unreleased-section.md` group ended with `[ -n ... ] && echo` lists; with SECTIONS and CONTRIBUTORS both empty the group (the script's last command) returns 1 and fails the step even though the file is written. Converted to `if` statements. Previously masked because the prod→HEAD range always had a New Contributors section. |
| 12 | +- Verified by extracting the step script from the YAML (10-space block indent stripped, heredoc terminators land at col 0) and running it against the live repo: failing env (prod-only) now exits 0 with correct output; simulated channel tag (N=1) confirms segmented path unchanged. Local BSD-sed chokes on a GNU-sed idiom in `generate_notes_api` — harmless locally, runner is GNU. |
| 13 | +- Push gotcha: both the git credential and gh token lack `workflow` scope (contents API rejects too) — pushing workflow-file changes works via SSH (`git push git@github.com:meshtastic/Meshtastic-Android.git <branch>`), which isn't scope-limited. |
| 14 | + |
9 | 15 | ## 2026-06-03 — Cluster-marker FATAL: revert shipped map series + in-scope rememberComposeBitmapDescriptor fix |
10 | 16 | - Reverted ALL google-flavor map changes to before #5684 (per user): restored MapView.kt, NodeClusterMarkers.kt, WaypointMarkers.kt, InlineMap.kt to parent commit bc9f1637; deleted MarkerBitmapRenderer.kt; re-pinned `play-services-maps = 20.0.0` in libs.versions.toml. The shipped #5702–#5719 series (Canvas markers + ViewTree-owner band-aids) had lost the info-window popups + interactions. |
11 | 17 | - Root cause (verified against maps-compose 8.3.0 + android-maps-utils 4.1.1 SOURCE in gradle cache): ONLY `Clustering(clusterItemContent=…)` crashes — its `ComposeUiClusterRenderer` builds a *detached* `InvalidatingComposeView` with a fake lifecycle owner and NO SavedStateRegistryOwner. `MarkerComposable` already bakes its icon via the safe in-scope `rememberComposeBitmapDescriptor`; info windows render with the live marker compositionContext. So InlineMap/NodeTrack/Traceroute were left untouched. |
|
31 | 37 | - Refined the `SYSTEM_INSTRUCTION` personality rules for Chirpy to position him as our adorable LoRa radio Node mascot instead of an avian theme, emphasizing high-enthusiasm mesh networking, signal connectivity, battery status, and radio/routing concepts while preserving technical precision. |
32 | 38 | - Overhauled system error messages inside `DocsNavigation.kt` and the loading bubble state inside `ChirpyAssistantSheet.kt` to align with the mascot theme. |
33 | 39 |
|
34 | | -## 2026-05-21 — Implemented streaming chat support and Firebase Remote Config integration for Chirpy |
35 | | -- Added `firebase-config` dependency to Version Catalog `libs.versions.toml` and `androidApp/build.gradle.kts`. |
36 | | -- Added the `AIDocAssistantResult.Partial` variant to support intermediate stream updates. |
37 | | -- Extended the `AIDocAssistant` interface and implemented `answerStream` in both `KeywordFallbackAssistant` and `GeminiNanoDocAssistant`. |
38 | | -- Integrated Firebase Remote Config into `GeminiNanoDocAssistant` to dynamically fetch the model name (`chirpy_model_name`) and system instruction (`chirpy_system_instruction`) with release-optimized fetch intervals. |
39 | | -- Refactored `GeminiNanoDocAssistant.answer` to reuse `answerStream` flow under the hood, eliminating duplicate prompting code. |
40 | | -- Verified that all unit tests (`:feature:docs:allTests`) and static analysis checks (`spotlessApply spotlessCheck detekt`) pass 100% green. |
41 | | - |
42 | 40 | ## Golden Context (stable across sessions) |
43 | 41 | - Always check `.skills/compose-ui/strings-index.txt` before reading `strings.xml`. |
44 | 42 | - Run `python3 scripts/sort-strings.py` after adding strings to keep the index organized. |
|
0 commit comments