The qwen3 and gemma4 DSpark modeling modules both import
extract_context_feature from ..common but never use it; it is referenced
only in deepspec/eval/dspark/evaluator.py. Drop the unused import (F401).
The DSpark and DFlash configs set `block_size=7` but name their experiments
`*_block8_*`. The Eagle3 configs already follow the parameter value in their
names (`*_ttt7_*` with `ttt_length=7`), and the released checkpoints in the
README are published as `*_block7_*`.
Rename the experiments to `*_block7_*` so the default checkpoint directory
matches both `block_size=7` and the published checkpoint names, and update
the eval.sh / README examples that reference that path.
TwoStageScheduler.state_dict() used `key not in "optimizer"`, which tests
whether each key is a substring of the string "optimizer" rather than
comparing it against "optimizer". It only drops the intended "optimizer"
key today because no other scheduler attribute name happens to be a
substring of "optimizer".
Use `key != "optimizer"`, matching torch's LRScheduler.state_dict idiom and
the SpecForge optimizer code this class is adapted from.