Remove the deprecated DeepSeek V4 Flash preview and legacy MTP #81

Closed
opened 2026-08-30 19:26:50 +00:00 by hugo · 1 comment
Owner

Goal

DeepSeek V4 Flash 0731 plus DSpark is the only supported Flash path. Remove the deprecated preview checkpoint and every code path that exists only for that checkpoint or its legacy MTP support, without weakening the 0731, DSpark, Pro, or GLM paths.

Removal inventory

Model catalog and configuration

  • Remove ModelChoice::DeepSeekV4Flash; keep DeepSeekV4Flash0731 as the sole Flash choice and default.
  • Remove the preview FLASH, FLASH_MTP, and preview FLASH_DSPARK artifacts, their hashes, URLs, managed artifact IDs, download/verify/progress branches, and catalog rows.
  • Remove supports_legacy_mtp, the legacy support-artifact selection arguments, and preview-only compatibility checks.
  • Add a one-time config migration that maps a selected model/profile key of deepseek-v4-flash to deepseek-v4-flash-0731, then persists only the 0731 ID. Do not leave the preview selectable merely for compatibility.
  • Handle the old SQLite preferences.selected_model value and CHECK constraint with a forward migration if that table is still live; do not rewrite already-shipped migration history.
  • Do not automatically delete a user-owned preview GGUF. If catalog cleanup is exposed, require an explicit user action and target only the deprecated models/deepseek-v4-flash directory.

Settings and UI

  • Remove legacy_mtp_enabled, mtp_draft_tokens, and mtp_margin from persisted preferences, drafts, validation, engine settings, and summaries; these fields are only used by the deprecated legacy-MTP path.
  • Remove the Legacy MTP toggle, MTP draft-token/margin controls, mutual-exclusion messages, and the Legacy MTP statistics label.
  • Keep the independent GLM MTP controls and DSpark confidence/strict/exact-sampling controls.
  • Make all Flash labels unambiguously refer to 0731; remove the deprecated-preview label and any duplicate Flash catalog entry.

Engine and validation

  • Remove SupportKind::LegacyMtp, legacy-MTP GGUF validation/binding, LegacyMtpWeights, LegacyMtp, draft/evaluation/verification branches, runtime state switching, checkpoint serialization/restoration, and speculative stats mode 1.
  • Remove SSD-streaming branches and tests that exist only to combine streaming with legacy MTP; retain and reverify SSD plus DSpark.
  • Keep shared target verification, KV/cache, sampling, and Metal helpers if DSpark or another supported model still uses them.
  • Update model-shape, hotlist, validation, and profile matches so 0731 is the only Flash arm.

API, metrics, scripts, and tests

  • Route deepseek-chat and deepseek-reasoner aliases to DeepSeekV4Flash0731.
  • Replace internal/public test fixture model IDs of deepseek-v4-flash with deepseek-v4-flash-0731, including endpoint continuation/parity/reasoning/speculative scripts.
  • Remove or migrate the preview metrics model index/name without corrupting existing metric decoding.
  • Replace generic agent, server, generation, profile, and validation tests that use the preview variant with 0731; delete legacy-MTP-only fixtures and assertions.
  • Remove legacy_mtp_runs_a_target_owned_greedy_cycle and the legacy half of ssd_streaming_supports_legacy_mtp_and_dspark from the execution-parity manifest.

Acceptance criteria

  • The app exposes and downloads only DeepSeek V4 Flash 0731 and its 0731 DSpark support artifact.
  • No source/UI/config/API path can enable or load legacy MTP or the deprecated preview checkpoint.
  • Existing configs selecting deepseek-v4-flash migrate cleanly to 0731 instead of failing startup.
  • rg finds no DeepSeekV4Flash preview arm, LegacyMtp, legacy_mtp, FLASH_MTP, preview artifact filename/hash, or deprecated-preview label outside the explicit migration compatibility test/data.
  • 0731 plain, DSpark, SSD streaming, API alias, checkpoint restore, and model-catalog tests remain green.
  • Run the full repository commit gates from AGENTS.md.
## Goal DeepSeek V4 Flash 0731 plus DSpark is the only supported Flash path. Remove the deprecated preview checkpoint and every code path that exists only for that checkpoint or its legacy MTP support, without weakening the 0731, DSpark, Pro, or GLM paths. ## Removal inventory ### Model catalog and configuration - Remove `ModelChoice::DeepSeekV4Flash`; keep `DeepSeekV4Flash0731` as the sole Flash choice and default. - Remove the preview `FLASH`, `FLASH_MTP`, and preview `FLASH_DSPARK` artifacts, their hashes, URLs, managed artifact IDs, download/verify/progress branches, and catalog rows. - Remove `supports_legacy_mtp`, the legacy support-artifact selection arguments, and preview-only compatibility checks. - Add a one-time config migration that maps a selected model/profile key of `deepseek-v4-flash` to `deepseek-v4-flash-0731`, then persists only the 0731 ID. Do not leave the preview selectable merely for compatibility. - Handle the old SQLite `preferences.selected_model` value and CHECK constraint with a forward migration if that table is still live; do not rewrite already-shipped migration history. - Do not automatically delete a user-owned preview GGUF. If catalog cleanup is exposed, require an explicit user action and target only the deprecated `models/deepseek-v4-flash` directory. ### Settings and UI - Remove `legacy_mtp_enabled`, `mtp_draft_tokens`, and `mtp_margin` from persisted preferences, drafts, validation, engine settings, and summaries; these fields are only used by the deprecated legacy-MTP path. - Remove the Legacy MTP toggle, MTP draft-token/margin controls, mutual-exclusion messages, and the Legacy MTP statistics label. - Keep the independent GLM MTP controls and DSpark confidence/strict/exact-sampling controls. - Make all Flash labels unambiguously refer to 0731; remove the deprecated-preview label and any duplicate Flash catalog entry. ### Engine and validation - Remove `SupportKind::LegacyMtp`, legacy-MTP GGUF validation/binding, `LegacyMtpWeights`, `LegacyMtp`, draft/evaluation/verification branches, runtime state switching, checkpoint serialization/restoration, and speculative stats mode 1. - Remove SSD-streaming branches and tests that exist only to combine streaming with legacy MTP; retain and reverify SSD plus DSpark. - Keep shared target verification, KV/cache, sampling, and Metal helpers if DSpark or another supported model still uses them. - Update model-shape, hotlist, validation, and profile matches so 0731 is the only Flash arm. ### API, metrics, scripts, and tests - Route `deepseek-chat` and `deepseek-reasoner` aliases to `DeepSeekV4Flash0731`. - Replace internal/public test fixture model IDs of `deepseek-v4-flash` with `deepseek-v4-flash-0731`, including endpoint continuation/parity/reasoning/speculative scripts. - Remove or migrate the preview metrics model index/name without corrupting existing metric decoding. - Replace generic agent, server, generation, profile, and validation tests that use the preview variant with 0731; delete legacy-MTP-only fixtures and assertions. - Remove `legacy_mtp_runs_a_target_owned_greedy_cycle` and the legacy half of `ssd_streaming_supports_legacy_mtp_and_dspark` from the execution-parity manifest. ## Acceptance criteria - The app exposes and downloads only DeepSeek V4 Flash 0731 and its 0731 DSpark support artifact. - No source/UI/config/API path can enable or load legacy MTP or the deprecated preview checkpoint. - Existing configs selecting `deepseek-v4-flash` migrate cleanly to 0731 instead of failing startup. - `rg` finds no `DeepSeekV4Flash` preview arm, `LegacyMtp`, `legacy_mtp`, `FLASH_MTP`, preview artifact filename/hash, or deprecated-preview label outside the explicit migration compatibility test/data. - 0731 plain, DSpark, SSD streaming, API alias, checkpoint restore, and model-catalog tests remain green. - Run the full repository commit gates from `AGENTS.md`.
hugo added the enhancement label 2026-08-30 19:26:50 +00:00
hugo added the critical label 2026-08-30 19:43:56 +00:00
Author
Owner

Implemented in 0fa15bb and pushed to main.

Removed the deprecated DeepSeek V4 Flash preview catalog entry, managed artifacts, settings/UI, legacy MTP validation/binding/execution/checkpoint/statistics paths, native boundary fields, scripts, and fixtures. DeepSeek V4 Flash 0731 is now the sole/default Flash model; deepseek-chat and deepseek-reasoner resolve to 0731. Existing YAML selections and profile keys migrate once to the 0731 ID and are persisted without the retired legacy fields. The obsolete SQLite preferences table was already removed by shipped forward migration 20260726160000, so no invalid migration against a non-live table was added and shipped migration history remains untouched. Existing preview GGUF directories are not deleted.

Review against DS4 oracle 8db89fe confirmed that the surviving 0731 target, DSpark proposer/verifier, sampling, checkpoint, and SSD behavior is unchanged. Added an explicit SSD plus DSpark hardware parity test and kept historical metric code 1 decodable while 0731 remains code 4.

Verification:

  • cargo fmt --all -- --check
  • cargo clippy --all-targets --all-features -- -D warnings
  • make bundle
  • cargo test --all-features: 209 passed, 16 hardware/browser tests ignored
  • acceptance rg: deprecated preview and legacy MTP identifiers remain only in explicit config migration compatibility code/test data
Implemented in 0fa15bb and pushed to main. Removed the deprecated DeepSeek V4 Flash preview catalog entry, managed artifacts, settings/UI, legacy MTP validation/binding/execution/checkpoint/statistics paths, native boundary fields, scripts, and fixtures. DeepSeek V4 Flash 0731 is now the sole/default Flash model; deepseek-chat and deepseek-reasoner resolve to 0731. Existing YAML selections and profile keys migrate once to the 0731 ID and are persisted without the retired legacy fields. The obsolete SQLite preferences table was already removed by shipped forward migration 20260726160000, so no invalid migration against a non-live table was added and shipped migration history remains untouched. Existing preview GGUF directories are not deleted. Review against DS4 oracle 8db89fe confirmed that the surviving 0731 target, DSpark proposer/verifier, sampling, checkpoint, and SSD behavior is unchanged. Added an explicit SSD plus DSpark hardware parity test and kept historical metric code 1 decodable while 0731 remains code 4. Verification: - cargo fmt --all -- --check - cargo clippy --all-targets --all-features -- -D warnings - make bundle - cargo test --all-features: 209 passed, 16 hardware/browser tests ignored - acceptance rg: deprecated preview and legacy MTP identifiers remain only in explicit config migration compatibility code/test data
hugo closed this issue 2026-08-31 06:05:08 +00:00
Sign in to join this conversation.