fancive_obsidian-parallel-r.../tests
fancivez 76d2e8050a fix: address 10 P2 behavioral and concurrency findings
Findings from the original review (P2):
- streaming: flush unterminated final SSE event at EOF (some providers
  close the stream without a trailing blank line, dropping the last delta)
- cache-manager: validate entry shape on load — drop entries where
  cards is not an array, anchor is not a string, or bullets is not an
  array. Tolerates missing optional fields (treated as cache miss).
- view: card edit/delete now check cacheReplaceCards return and surface
  failures via a localized Notice instead of pretending success
- main: clear-current / clear-all / file-menu-clear refresh open view
  via renderEmpty so stale UI does not display deleted data
- prompt + settings-tab: card count is normalized via a single helper
  used by buildPrompts and onChange. Prompt and fingerprint stay in sync.
  UI value is written back to the textbox after clamping.
- generation-job-manager: global concurrency limit (default 3) with a
  cancellable wait queue. Race-safe slot accounting via a reserved
  counter so resolved-but-not-yet-set waiters are visible to fast-path
  start() callers.
- runForFile: now returns RunForFileResult; accepts preloadedContent +
  silentView + skipEditConfirm options used by batch (and reflected on
  the PluginHost interface).
- batch: avoid double file read, do not steal UI focus, classify
  results correctly (generated / cached / already-running / empty / ...)

Follow-up from the 1.0.11 review:
- generationFingerprint: codex backend excludes settings.model from the
  hash. Codex ignores --model; previously editing model spuriously
  invalidated all codex cache.

Codex review pass:
- generation-job-manager: race fix — releaseSlot's resolve microtask
  and a synchronous start() fast-path could briefly overshoot
  maxConcurrent. Reserve the slot synchronously inside the wrapped
  resolve to close the window.
- cache-manager: anchor type validation in addition to bullets.

NOTE: Codex backend users will see a one-time "stale cache" banner on
existing notes due to the fingerprint change; regenerate to refresh.

Change-Id: I7721c7dfe51dea3f51b0215764f721523c2f6806
2026-05-02 13:52:49 +08:00
..
anchor.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
architecture.test.js test: split architecture guard tests 2026-04-29 13:53:19 +08:00
cache.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
cards-nav.test.js refactor: split modules.test.js into 12 per-module test files 2026-04-27 15:21:03 +08:00
catalog.json ci(e2e): enforce self-contained release gate 2026-04-30 14:45:56 +08:00
cli.test.js fix: address 13 review findings (security, UX, i18n) 2026-05-02 12:50:35 +08:00
direct-batch.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-cache.test.js fix: address 10 P2 behavioral and concurrency findings 2026-05-02 13:52:49 +08:00
direct-generation.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-i18n.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-markdown.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-prompt.test.js fix: address 10 P2 behavioral and concurrency findings 2026-05-02 13:52:49 +08:00
direct-providers.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-settings-extra.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-settings.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-streaming.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
direct-test-setup.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
generation-job-manager.test.js fix: address 10 P2 behavioral and concurrency findings 2026-05-02 13:52:49 +08:00
i18n.test.js fix: add cancel action to batch prompt 2026-04-29 14:13:47 +08:00
markdown.test.js refactor: split modules.test.js into 12 per-module test files 2026-04-27 15:21:03 +08:00
obsidian-mock.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
plugin-batch.test.js fix: address 10 P2 behavioral and concurrency findings 2026-05-02 13:52:49 +08:00
providers.test.js refactor: split main.test.js into focused test files 2026-04-27 19:59:46 +08:00
schema.test.js fix: address 13 review findings (security, UX, i18n) 2026-05-02 12:50:35 +08:00
scroll.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00
settings.test.js fix: address 10 P2 behavioral and concurrency findings 2026-05-02 13:52:49 +08:00
streaming.test.js fix: address 10 P2 behavioral and concurrency findings 2026-05-02 13:52:49 +08:00
test-exports.test.js fix: address 10 P2 behavioral and concurrency findings 2026-05-02 13:52:49 +08:00
test-setup.js fix: address CR findings — bump script, test runner, temp cleanup 2026-04-27 20:19:53 +08:00
vault-batch.test.js lint: extend Biome coverage to tests/ and scripts/ 2026-04-27 19:53:35 +08:00