Skip to content

docs: Zig ADR, restored dirty-NIF ADR, ACCOMPLISHMENTS.md, decision-log guidance - #228

Merged
GenericJam merged 2 commits into
masterfrom
docs/decision-log-and-accomplishments
Oct 24, 2026
Merged

GenericJam merged 2 commits into
masterfrom
docs/decision-log-and-accomplishments

Conversation

@GenericJam

@GenericJam GenericJam commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Docs-only, plus one comment path in ios/mob_nif.m. No code or build changes.

Force-pushed: the first version of this branch was cut from a stale local master (0.7.20) and showed 165 files. Now based on 8b7f7aa (0.9.26).

What

  • decisions/2026-05-09-zig-for-android-nif-and-native-build.md: retroactive ADR for why core Android native code is Zig. Covers NIF crashes killing the VM, types, defer keeping cleanup next to the acquire, and comptime. Describes what the build actually does: build.zig orchestrates, while Apple clang/swiftc and NDK clang are still invoked. Consequences: defer adoption is partial (40/45 env frees, 7/22 unlocks, 2/6 JNI string releases deferred); .ReleaseSmall in every build; two live Zig pins (Android NIF builds on both Zig pins; pin Keyboard.dismiss and Android blur in tests #226); the d5038c5 bug class; agents defaulting to C.
  • decisions/2026-04-28-dirty-nifs.md: restores docs/decisions/0001-dirty-nifs.md, removed in the unrelated commit 88532d9 while ios/mob_nif.m still cited it. The body is the original text. The Status line marks its regular-scheduler list superseded by 2026-09-05-input-nifs-are-dirty-io.md. The iOS comment now cites the new path.
  • ACCOMPLISHMENTS.md: verified hard problems agents solved in this repo, each with commit/PR/ADR evidence, to be read before declaring a task impossible. Includes the rules for adding entries.
  • AGENTS.md
    • New section Before you say it can't be done.
    • Pre-empt rule 20: core android/jni/ is Zig.
    • A Decision log paragraph on recording decisions that go against an agent's default, and on recording missed ones retroactively.
    • Two Where to look rows.
    • Drops the clang-format globs ios/*.c and android/jni/*.c, which match nothing since the Zig port.

Verification

  • Every hash is on origin/master, and every PR number, path, and count was checked by an adversarial fact-check subagent before commit. Its findings are applied: 74 NIFs (not 79), the audio-probe scope, the full battery range, the build-toolchain description, defer coverage, plugin NIF language policy, and Bluetooth extraction commits.
  • Not fixed: future_developments.md:454 cites docs/decisions/0002-wiretap-poc-then-port.md, which never existed in this repo's history. Left alone rather than inventing its content.

…og guidance

- decisions/2026-05-09-zig-for-android-nif-and-native-build.md: retroactive record of why core Android native code is Zig (VM-crash risk, types, defer, comptime), what the build actually does (build.zig orchestration; Apple clang/swiftc and NDK clang remain), and the consequences: partial defer adoption, ReleaseSmall in every build, two live Zig pins, the d5038c5 bug class, agents defaulting to C.
- decisions/2026-04-28-dirty-nifs.md: restores docs/decisions/0001-dirty-nifs.md, removed in 88532d9 while ios/mob_nif.m still cited it. Status marks the regular-scheduler list superseded by 2026-09-05-input-nifs-are-dirty-io.md. The iOS comment now cites the new path.
- ACCOMPLISHMENTS.md: verified hard problems agents solved here, each with commit/PR/ADR evidence, for agents to read before declaring a task impossible.
- AGENTS.md: 'Before you say it can't be done' section; pre-empt rule 20 (core android/jni is Zig); Decision log paragraph on recording default-contrary and retroactive decisions; Where-to-look rows; drop clang-format globs for ios/*.c and android/jni/*.c, which match nothing since the Zig port.

Fact-checked by an adversarial review subagent before commit; its findings are applied.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@GenericJam GenericJam changed the title docs: decision-log rule, Zig ADR, restored dirty-NIF ADR, ACCOMPLISHMENTS.md docs: Zig ADR, restored dirty-NIF ADR, ACCOMPLISHMENTS.md, decision-log guidance Oct 24, 2026
@GenericJam
GenericJam force-pushed the docs/decision-log-and-accomplishments branch from ccd27ce to 2fcfbf1 Compare October 24, 2026 07:46
The commit counts are pinned to 8b7f7aa: the HEAD form of the command drifts
as soon as the doc lands. The torch entry was toggled over dist on Android but
from an on-device button on iOS. Release screenshots are opt-in. The Zig driver
tables came in b361383, and ab9ff59 deleted the C ones. The restored dirty-NIF
ADR notes its updated See-also line. Rule 20 is scoped to core android/jni/.
@GenericJam

Copy link
Copy Markdown
Owner Author

Review: Codex was rate-limited until 5:02 AM, so a reviewer subagent did it. It said MERGE with three should-fix and three nitpicks; all six were fixed in 081c957, and the re-review said MERGE. All 24 commit hashes, the 10 PR numbers, the NIF counts and the defer coverage were checked against the source.

@GenericJam
GenericJam merged commit b57cc95 into master Oct 24, 2026
4 checks passed
@GenericJam
GenericJam deleted the docs/decision-log-and-accomplishments branch October 24, 2026 07:59
@GenericJam GenericJam mentioned this pull request Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant