panatgithub_AnkiHeadingSync/docs/prerelease-remaining-fixes-decisions.md
Dusk 98d64dac21 fix(release): clean remaining pre-release state issues
中文: 修复 pendingWriteBack 持久化加载,丢弃旧 Semantic QA 状态,并修正发布链接与多级列表问答文案。

English: Preserves pendingWriteBack state loading, drops old Semantic QA state, and fixes release links and QA Group wording.
2026-04-27 21:11:48 +08:00

2.3 KiB

Pre-release Remaining Fixes Decisions

Pending writeback validation rules

  • Preserve modern PendingWriteBackState entries during load only when all required fields are valid.
  • Required fields:
    • filePath: non-empty string
    • blockStartLine: positive integer
    • expectedFileHash: non-empty string
    • targetMarker: non-empty string
    • rawBlockHash: non-empty string
    • targetNoteId: positive integer
  • markerKind rules:
    • undefined is valid
    • "card-id" is valid
    • "group-gi" is valid
    • any other value is invalid and drops the item
  • targetGroupId rules:
    • if absent, keep normal validation result
    • if present, it must be a non-empty string
    • malformed targetGroupId drops the item

Legacy pending dropping rule

  • Do not migrate legacy pending entries that only contain legacy identity fields such as cardId or noteId.
  • Any pending entry missing targetNoteId is dropped.
  • Do not synthesize or coerce malformed pending items into the modern shape.

Old Semantic QA state dropping rule

  • Current supported loaded card state remains limited to:
    • basic
    • cloze
  • Removed card types such as semantic-qa are dropped during load.
  • Unknown removed card types are also dropped during load.
  • Dropped cards are not written into state.cards.
  • File noteIds are rebuilt from the filtered migrated card map so dropped cards cannot leave dangling note IDs behind.

README wording decision

  • Replace managed group notes with current-product wording centered on multi-level list QA cards/notes.
  • Keep the README change focused to the active feature description only.

i18n wording decision

  • Remove user-facing managed-model narrative from active settings copy.
  • Replace old wording such as QA Group 12, ObsiAnki QA Group 12, Managed note type, and Managed model contract with current route wording for multi-level list QA notes.
  • Keep internal model-definition constants unchanged unless a user-facing behavior requires a rename.

Intentional deviations from the plan

  • Internal technical constants such as QA_GROUP_MODEL_NAME are not renamed in this round because the requested cleanup is limited to active user-facing wording and persistence behavior.
  • Historical audit docs are left untouched even if they still mention old QA Group 12 or Semantic QA history.