Skip to content

Commit d0d1591

Browse files
committed
docs: mark #80/#95/#98/#102 as FIXED now that PR #185 is merged
PR #185 (commit cba693c) merged the four regression tests sketched in the 49be664 open-issues verification plan. Update the per-issue blocks, the status overview table, the top-level deep-dive verdict guide, and the recommended-sequencing section to reflect that #80, #95, #98 and #102 are now FIXED (no longer "LIKELY FIXED → FIXED on CI green"). https://claude.ai/code/session_01R3jVWHsB3zymwAQtj8GT43
1 parent cba693c commit d0d1591

1 file changed

Lines changed: 26 additions & 32 deletions

File tree

docs/history/49be664_open_issues.md

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,9 @@ After a second-pass analysis of every `LIKELY FIXED` and `PARTIALLY FIXED` issue
3333
PARTIALLY FIXED (documentation gap).
3434

3535
- **Confirmable with one targeted JUnit test (no model retraining, no platform
36-
reproduction):** all four JUnit tests below were added on branch
37-
`claude/sweet-fermi-1yrRK` (commit `713d426`); each compiles and self-skips
38-
cleanly when its model is absent. Verdicts move to FIXED once CI runs them
39-
green.
36+
reproduction):** all four JUnit tests below landed on `master` via PR #185
37+
(commit `cba693c`). Each compiles and self-skips cleanly when its model is
38+
absent; all four issues are now **FIXED**.
4039
- #102 — memory leak on `close()`: covered by
4140
`MemoryManagementTest#testOpenCloseLoopDoesNotLeak` (20-iteration loop,
4241
Linux asserts `VmRSS` delta `< 200 MB`; non-Linux degenerates to a
@@ -68,11 +67,11 @@ After a second-pass analysis of every `LIKELY FIXED` and `PARTIALLY FIXED` issue
6867
All five depend on architecture/runtime emulation defects or platform-specific
6968
CRT behaviour that no amount of source-tree inspection can resolve.
7069

71-
Bottom line: out of 9 `LIKELY/PARTIALLY FIXED` issues, **4 are now covered by
72-
JUnit tests on branch `claude/sweet-fermi-1yrRK`** (#80, #95, #98, #102 — pending
73-
the first green CI run before formal FIXED), **3 stay PARTIALLY FIXED pending
74-
Java-side enhancements** (typed image API #103/#34, 32-bit Android tail of #121,
75-
CUDA-jar documentation #86), and **0 require platform reproduction**.
70+
Bottom line: out of 9 `LIKELY/PARTIALLY FIXED` issues, **4 are now FIXED via
71+
JUnit regression tests merged in PR #185** (#80, #95, #98, #102), **3 stay
72+
PARTIALLY FIXED pending Java-side enhancements** (typed image API #103/#34,
73+
32-bit Android tail of #121, CUDA-jar documentation #86), and **0 require
74+
platform reproduction**.
7675

7776
---
7877

@@ -290,8 +289,8 @@ release native memory. Reproduced with a 10-iteration loop: GPU eventually
290289
OOMs; CPU eventually thrashes swap. Suggests a leak in the JNI/native
291290
destructor path.
292291

293-
**Status in fork:** LIKELY FIXED (regression test added in commit `713d426`,
294-
awaits first CI green run for FIXED). The native destructor
292+
**Status in fork:** FIXED (regression test landed in commit `cba693c`, PR #185).
293+
The native destructor
295294
(`Java_net_ladenthin_llama_LlamaModel_delete`, `src/main/cpp/jllama.cpp:917-948`)
296295
now: clears the field pointer first, drains `readers`, signals `server.terminate()`
297296
(twice for the race documented in comments), joins the worker, frees
@@ -335,8 +334,7 @@ The same file works with upstream `llama-embedding` CLI, so the issue is in
335334
how the bindings configure the embedding context (e.g. missing `embedding=true`
336335
or pooling parameter).
337336

338-
**Status in fork:** LIKELY FIXED (regression test + CI download added in commit
339-
`713d426`, awaits first green CI run for FIXED). `ModelParameters.enableEmbedding()`
337+
**Status in fork:** FIXED (regression test + CI download landed in commit `cba693c`, PR #185). `ModelParameters.enableEmbedding()`
340338
sets `ModelFlag.EMBEDDING` (`ModelParameters.java:1040`) and
341339
`setPoolingType(PoolingType)` exposes the pooling strategy
342340
(`ModelParameters.java:606`). The upstream b9284 server-context (compiled directly
@@ -364,8 +362,7 @@ Reporter takes issue with `LlamaIterator.next()`: when the receive call returns
364362
inference output that loops and cannot be terminated. Suggests the
365363
`hasNext`/`stop` handshake or the underlying `receiveCompletion` is buggy.
366364

367-
**Status in fork:** LIKELY FIXED (regression test added in commit `713d426`,
368-
awaits first green CI run for FIXED). `LlamaIterator` now uses
365+
**Status in fork:** FIXED (regression test landed in commit `cba693c`, PR #185). `LlamaIterator` now uses
369366
`receiveCompletionJson` and toggles `hasNext = !output.stop`
370367
(`LlamaIterator.java:51-54`), and exposes explicit cancellation via
371368
`close()`/`AutoCloseable` semantics (`LlamaIterable.java:44`,
@@ -546,8 +543,7 @@ generating) segfaults inside libc, with a stack pointing into
546543
`std::_Rb_tree::_M_erase`. If generation happens first, `close()` succeeds.
547544
Likely an uninitialized/half-initialized native field being destroyed.
548545

549-
**Status in fork:** LIKELY FIXED (regression test added in commit `713d426`,
550-
awaits first green CI run for FIXED). The native destructor now waits on
546+
**Status in fork:** FIXED (regression test landed in commit `cba693c`, PR #185). The native destructor now waits on
551547
`worker_ready` before terminating (`src/main/cpp/jllama.cpp:929-931`), drains the
552548
`readers` map under lock (`jllama.cpp:925-928`), and calls `server.terminate()`
553549
twice with a 1 ms sleep specifically to close the race "where the thread
@@ -729,10 +725,10 @@ Feature request: add multimodal input support (referencing
729725
| 107 | FIXED | CMake matches both Mac and Darwin | `CMakeLists.txt:196` |
730726
| 104 | FIXED | `NO_KV_OFFLOAD` flag exposed | `args/ModelFlag.java:50` |
731727
| 103 | PARTIALLY FIXED | mtmd linked, no typed image API | `ModelParameters.java:1250-1281` |
732-
| 102 | LIKELY FIXED → FIXED on CI green | Destructor drains workers and frees ctx; covered by `MemoryManagementTest#testOpenCloseLoopDoesNotLeak` (commit `713d426`) | `jllama.cpp:917-948` |
728+
| 102 | FIXED | Destructor drains workers and frees ctx; covered by `MemoryManagementTest#testOpenCloseLoopDoesNotLeak` (commit `cba693c`, PR #185) | `jllama.cpp:917-948` |
733729
| 101 | FIXED | Trampoline calls BiConsumer | `jllama.cpp:954-977` |
734-
| 98 | LIKELY FIXED → FIXED on CI green | `enableEmbedding` + `setPoolingType`; covered by `LlamaEmbeddingsTest#testNomicEmbedLoads` (commit `713d426`, CI downloads `nomic-embed-text-v1.5.f16.gguf`) | `ModelParameters.java:1040,606` |
735-
| 95 | LIKELY FIXED → FIXED on CI green | Iterator close/AutoCloseable wired; covered by `LlamaModelTest#testIteratorTerminatesOnRepetitivePrompt` (commit `713d426`) | `LlamaIterator.java:51-77` |
730+
| 98 | FIXED | `enableEmbedding` + `setPoolingType`; covered by `LlamaEmbeddingsTest#testNomicEmbedLoads` (commit `cba693c`, PR #185; CI downloads `nomic-embed-text-v1.5.f16.gguf`) | `ModelParameters.java:1040,606` |
731+
| 95 | FIXED | Iterator close/AutoCloseable wired; covered by `LlamaModelTest#testIteratorTerminatesOnRepetitivePrompt` (commit `cba693c`, PR #185) | `LlamaIterator.java:51-77` |
736732
| 91 | STILL POSSIBLE | No Android sample shipped | No `examples/android/` |
737733
| 90 | FIXED | mvn compile vs cmake split documented | `CLAUDE.md` Build Commands |
738734
| 89 | NOT APPLICABLE | Hand-port `server.hpp` removed | upstream server compiled directly |
@@ -744,7 +740,7 @@ Feature request: add multimodal input support (referencing
744740
| 83 | NEEDS INVESTIGATION | Fresh Windows artifact; reproduce | `compat/ggml_x86_compat.c` |
745741
| 82 | STILL POSSIBLE | No Android Gradle sample | See #91 |
746742
| 81 | STILL POSSIBLE | No Android demo repo | See #91 |
747-
| 80 | LIKELY FIXED → FIXED on CI green | Half-init race closed by double-terminate; covered by `MemoryManagementTest#testOpenCloseWithoutGeneration` (commit `713d426`) | `jllama.cpp:932-940` |
743+
| 80 | FIXED | Half-init race closed by double-terminate; covered by `MemoryManagementTest#testOpenCloseWithoutGeneration` (commit `cba693c`, PR #185) | `jllama.cpp:932-940` |
748744
| 79 | NEEDS INVESTIGATION | Threading rewritten; needs Android repro | `jllama.cpp:683,938` |
749745
| 78 | FIXED | `addLoraAdapter`/`addLoraScaledAdapter` | `ModelParameters.java:906,918` |
750746
| 77 | NEEDS INVESTIGATION | Fresh Windows build at b9284 | `compat/ggml_x86_compat.c` |
@@ -784,12 +780,11 @@ Four small JUnit tests close out four `LIKELY FIXED` items. All four belong in
784780
`src/test/java/net/ladenthin/llama/LlamaModelTest.java`, reusing the existing
785781
`TestConstants` model path so no new model download is needed except for #98.
786782

787-
> **Status:** all four tests below were implemented on branch
788-
> `claude/sweet-fermi-1yrRK` in commit `713d426`. The code blocks that follow
789-
> describe the original design sketch; the as-shipped tests match these
790-
> sketches with minor naming and JavaDoc polish (try-with-resources for the
791-
> iterable, `Assume`-gated nomic path, etc.). Verdicts upgrade to **FIXED**
792-
> on the first green CI run.
783+
> **Status:** all four tests below shipped via PR #185 (commit `cba693c`).
784+
> The code blocks that follow describe the original design sketch; the
785+
> as-shipped tests match these sketches with minor naming and JavaDoc polish
786+
> (try-with-resources for the iterable, `Assume`-gated nomic path, etc.).
787+
> All four issues (#80, #95, #98, #102) are now **FIXED**.
793788
794789
#### 1. `MemoryManagementTest.testOpenCloseLoopDoesNotLeak()` — for #102
795790

@@ -904,8 +899,8 @@ the same pattern as the existing CodeLlama / Jina-Reranker model downloads.
904899

905900
### Recommended sequencing
906901

907-
1. **First PR (small, high-value): DONE on branch `claude/sweet-fermi-1yrRK`,
908-
commit `713d426`.** Adds the four JUnit tests
902+
1. **First PR (small, high-value): MERGED as PR #185, commit `cba693c`.** Adds
903+
the four JUnit tests
909904
(`MemoryManagementTest#testOpenCloseLoopDoesNotLeak`,
910905
`MemoryManagementTest#testOpenCloseWithoutGeneration`,
911906
`LlamaModelTest#testIteratorTerminatesOnRepetitivePrompt`,
@@ -915,9 +910,8 @@ the same pattern as the existing CodeLlama / Jina-Reranker model downloads.
915910
test job of `.github/workflows/publish.yml`, and the local-build
916911
documentation in `CLAUDE.md` ("Building the native library for local Java
917912
tests"). All four tests compile and self-skip cleanly when their model is
918-
absent; verified locally on Linux x86_64. Once CI runs them green, upgrade
919-
#80, #95, #98, #102 to **FIXED** in the per-issue blocks and the Status
920-
overview table above (remove the "→ FIXED on CI green" annotation).
913+
absent; verified locally on Linux x86_64. Issues #80, #95, #98, #102 are
914+
now marked **FIXED** in the per-issue blocks and the Status overview table.
921915
2. **Second PR (docs):** add the README "Choosing the right classifier" section
922916
to close out #86, and document the 32-bit Android limitation to close out
923917
the residual gap on #121.

0 commit comments

Comments
 (0)