Skip to content

Commit 568a0ad

Browse files
committed
docs: add session handover (post-compaction continuity)
Captures: proof tiers 0-3 merged; main state (MPL, android carve-out, upstream rust-ci/hypatia reds); my open PRs (#129 merge-first, #125, #119); the gossamer migration map (#83, sub-issues #108-115, sub-PRs #121-130); blocked owner decisions; and dispatchable prompts already drafted. https://claude.ai/code/session_01Gu1JFCZHuBtBhAWPr4sMQw
1 parent 97f6b49 commit 568a0ad

1 file changed

Lines changed: 110 additions & 0 deletions

File tree

HANDOVER.adoc

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
// SPDX-License-Identifier: MPL-2.0
2+
= Session Handover — neurophone (post-compaction continuity)
3+
:toc:
4+
5+
Snapshot for continuing work after context compaction. `main` HEAD at time of
6+
writing: `0a88e45`.
7+
8+
NOTE: Terminology — *"Rust" always means "Rust/Spark"* (owner directive).
9+
Licence/SPDX and the *Palimpsest* philosophy files are *owner territory* — do
10+
not edit `PALIMPSEST.adoc`, citations, or governance philosophy docs.
11+
12+
== 1. Done & merged
13+
14+
* *Proof-obligation map (#84), Tiers 0–3* — merged to `main` via *#106* (and
15+
*#101* for obligation 1.1). Sub-issues #86,#87,#89–#92,#94,#95 closed; *#93*
16+
(2.3 affine) intentionally left open as an AffineScript design spec
17+
(`proofs/affine/README.adoc`). `proofs/README.adoc` tracks status.
18+
* *Bugs fixed while proving:* the "spectral radius" in `esn` *and* `lsm` was the
19+
∞-norm (now true ρ via power iteration); `claude-client` backoff had a
20+
`2u64.pow` overflow (now saturating/capped).
21+
22+
== 2. `main` state
23+
24+
* *Licence = MPL-2.0* (PMPL reverted in #102/#118). `Cargo.toml`, `LICENSE`,
25+
SPDX headers all MPL.
26+
* *Banned-language CI is GREEN:* `android/**` carve-out via #105 +
27+
`.hypatia-baseline.json` (estate reusable reads it). "Language Policy" and
28+
"Governance" pass. The two historic Kotlin reds are resolved.
29+
* *Two CI reds remain, both UPSTREAM / out of neurophone scope:*
30+
** `rust-ci` — thin wrapper for `hyperpolymath/standards/.github/workflows/rust-ci-reusable.yml`.
31+
Fails at *startup with 0 jobs* on the pinned SHA `cc5a372` *and* on `@main`.
32+
Root cause is in `standards` (reusable moved, or it rejects the
33+
`enable_audit`/`enable_coverage` inputs). *Cannot be fixed from neurophone.*
34+
** `hypatia-scan` — same class (estate scanner reusable/infra).
35+
** `Instant Sync` / `Mirror` / `Scorecard` — infra/external-forge/token, ignore.
36+
* *LATENT BUILD BREAK (fixed by PR #129, not yet merged):* workspace `Cargo.toml`
37+
declares `rand 0.10` / `rand_distr 0.6` (dependabot #49/#67) which are
38+
incompatible with `ndarray-rand 0.16` (needs `rand 0.9`); only masked by the
39+
committed `Cargo.lock`. A lockfile refresh breaks `esn`/`lsm`.
40+
41+
== 3. My open PRs — recommended merge order
42+
43+
. *#129* `fix/esn-lsm-rand-0.10` — revert `rand`→0.9 / `rand_distr`→0.5;
44+
un-breaks the workspace build. Verified `cargo build/test --workspace` green.
45+
*MERGE FIRST* (everything else rebases on it).
46+
. *#125* `chore/ignore-agent-worktrees` — gitignore `.claude/worktrees/`; also
47+
carries this `HANDOVER.adoc`.
48+
. *#119* `chore/consolidate-cicd-docs` — README licence badge PMPL→MPL only (the
49+
rust-ci repin attempt was reverted: `@main` also startup-fails). The PR will
50+
still show `rust-ci` red — that is pre-existing/upstream, not from this PR.
51+
52+
== 4. Gossamer Android migration (epic #83)
53+
54+
Decomposed into linked sub-issues *#108–#115*. RFC is PR *#97* (a parallel
55+
session) — it recommends *neurophone-local Java shims*, NOT growing gossamer.
56+
*Decisions captured:* drop the widget configure-activity (#113); `NativeLib`
57+
logic → `crates/neurophone-android` in Rust/Spark via JNI (#110); gossamer
58+
Android is WebView+JNI only (no Service/Receiver/Widget host upstream).
59+
60+
*Sub-PRs (all DRAFT, branched off `main`):*
61+
62+
[cols="1,2,3",options="header"]
63+
|===
64+
| Step | PR | Branch / notes
65+
| #4 NativeLib→Rust/Spark | *#130* | `chore/gossamer-nativelib-port` — full 11-method JNI surface, 7 tests, verified green; *includes* the rand fix + pins `jni 0.21`. Strong.
66+
| #3 scaffolding | #121 + #126 | `chore/gossamer-scaffold-a` / `-b` — *DUPLICATES, pick one*. Depend on unpublished `gossamer-rs`.
67+
| #5 Service | #123 | `chore/gossamer-service`
68+
| #6 BootReceiver | #122 | `chore/gossamer-bootreceiver`
69+
| #7 Widgets | #128 | `chore/gossamer-widgets`
70+
| #8 UI | #127 | `chore/gossamer-ui`
71+
| #9 delete legacy `android/` | #124 | `chore/gossamer-delete-legacy` — *BLOCKED*, gated on all above
72+
|===
73+
74+
*JNI contract* (class `ai.neurophone.NativeLib`, lib `neurophone_android`):
75+
`init(String?)→bool`, `start()→bool`, `stop()`, `processSensor(int,float[],long-ns,int)→bool`,
76+
`queryLocal/queryClaude/query(String[,bool])→String`, `getNeuralContext()→String`,
77+
`getState()→JSON`, `reset()`, `isRunning()→bool`. Sensor ids: accel=1, magneto=2,
78+
gyro=4, light=5, prox=8.
79+
80+
== 5. BLOCKED — needs owner decision
81+
82+
* *`gossamer-rs` licence (AGPL) vs neurophone MPL-2.0* — compatibility call.
83+
* *`gossamer-rs` is unpublished* (not on crates.io) — how do scaffold PRs source
84+
it (git dep? path? vendored?).
85+
* *`rust-ci` + `hypatia-scan` reusables broken in `hyperpolymath/standards`* —
86+
fix must land there (out of neurophone scope); a standards prompt is drafted
87+
in the conversation.
88+
* *Merge approvals* for #119/#125/#129 and the gossamer chain.
89+
* *Not-mine parallel branches:* #97 RFC, #117 ci-DRY, `ci/delete-local-java-kotlin-check`
90+
(likely stale — #107 closed), `docs/reintroduce-architecture-build-install-proofs`.
91+
92+
== 6. Dispatchable prompts already written (in the conversation)
93+
94+
Ready to send to separate sessions; not yet dispatched:
95+
96+
* Gossamer Android *assessment + grow native component support* (Service/
97+
Receiver/Widget), with the NativeLib JNI surface as the reference contract.
98+
* *CI banned-language exemption* for the generated shim dir (neurophone + standards).
99+
* *Q6* — `standards` anti-pattern policy ownership + add a path-exclusion input.
100+
* *Q7* — neurophone Android migration *test plan* (Oppo Reno 13 / Dimensity 8350
101+
vs emulator/Termux).
102+
103+
== 7. Next actions (when unblocked)
104+
105+
. Merge *#129* → *#125* → *#119*.
106+
. Resolve `gossamer-rs` licence + sourcing, then run the chain: pick one scaffold
107+
PR, merge *#130*, then #5–#8 (parallelisable), rebase + merge *#9*.
108+
. Get `standards` to fix `rust-ci-reusable` + `hypatia` → `rust-ci`/`hypatia-scan`
109+
go green.
110+
. Delete stale remote branches once their PRs close.

0 commit comments

Comments
 (0)