From 2136ba4380980dfa1accaf6eee61fc5b92dfb689 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Fri, 28 Aug 2026 02:39:22 -0400 Subject: [PATCH] Move two toolchain lessons where every project can read them CMP 1.11 deprecating the `compose.*` accessors and AGP 9 refusing a `Provider` in the source-set API are facts about those versions, not about this app -- they would bite any Android project on this machine, and the one that hits them next is unlikely to be reading ai-app's notes. They now live in ~/.claude/TOOLCHAIN.md, each stated against the version it was learned on so it can be deleted when nothing here is on that version. What is left under "Things that have bitten" is genuinely this project's, and the section now says so, with the two global homes named -- so the next lesson lands in the right one instead of here by default. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_017xn8nHw1tw1R6PtiY1eEtw --- AGENTS.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 30c0de9..9b3b673 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -128,6 +128,10 @@ follows is only what that means for **this** project. ## Things that have bitten +Project-specific only — a lesson that would bite any project on this +machine belongs in `~/.claude/TOOLCHAIN.md` (toolchain versions) or +`~/.claude/MACHINE.md` (the machine itself) instead. + - **tracing caches callsite interest process-wide.** A test that hits a `tracing::warn!` with no subscriber installed can poison the interest cache for a concurrent test that captures logs (flaky "nothing was @@ -138,9 +142,6 @@ follows is only what that means for **this** project. Without `android:windowSoftInputMode="adjustResize"`, opening the IME slides the whole window up (top bar off screen) instead of resizing — `imePadding()` alone doesn't fix it and the transcript looks empty. -- **CMP 1.11 deprecates the `compose.*` dependency accessors** — declare - `org.jetbrains.compose.:` directly (material3 has its own release - train, separate from the CMP version). - **A PEM constant must start at the opening quotes.** A generated `"""\n-----BEGIN CERTIFICATE-----` costs Android's `CertificateFactory` its preamble sniff, so it tries DER instead and fails at runtime with @@ -154,7 +155,3 @@ follows is only what that means for **this** project. making the server dictate the colours. `EnrollmentScanActivity` also turns off the library's 10% framing-rect inset (it decodes only what is inside it) and its laser/result-point decorations. -- **AGP 9 refuses `Provider`s in the source-set API**: generated sources go - through `androidComponents.onVariants { it.sources.java?.addGenerated - SourceDirectory(task, Task::outputDir) }`, which also carries the task - dependency.