diff --git a/alembic/versions/0081_stricter_auto_apply_defaults.py b/alembic/versions/0081_stricter_auto_apply_defaults.py index 0a7f893..8030eec 100644 --- a/alembic/versions/0081_stricter_auto_apply_defaults.py +++ b/alembic/versions/0081_stricter_auto_apply_defaults.py @@ -1,10 +1,11 @@ -"""stricter auto-apply defaults (milestone 139) — cut graduate/auto-apply misfires +"""stricter auto-apply defaults (milestone 139) — cut auto-apply misfires -head_auto_apply_precision 0.97→0.98, head_auto_apply_min_positives 30→50, -ccip_auto_apply_threshold 0.92→0.95 (operator-asked 2026-07-06). The model -defaults change for fresh installs; here we bump the existing singleton row IFF -it is still at the previous default, so a deliberate operator change is NOT -clobbered. +head_auto_apply_min_positives 30→50 and ccip_auto_apply_threshold 0.92→0.95 +(operator-asked 2026-07-06). The head graduation precision bar stays 0.97 — the +operator confirmed the general-tag confidence was already well tuned; only the +support floor + the CCIP match confidence are raised. The model defaults change +for fresh installs; here we bump the existing singleton row IFF it is still at +the previous default, so a deliberate operator change is NOT clobbered. Revision ID: 0081 Revises: 0080 @@ -21,10 +22,6 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: - op.execute( - "UPDATE ml_settings SET head_auto_apply_precision = 0.98 " - "WHERE head_auto_apply_precision = 0.97" - ) op.execute( "UPDATE ml_settings SET head_auto_apply_min_positives = 50 " "WHERE head_auto_apply_min_positives = 30" @@ -36,10 +33,6 @@ def upgrade() -> None: def downgrade() -> None: - op.execute( - "UPDATE ml_settings SET head_auto_apply_precision = 0.97 " - "WHERE head_auto_apply_precision = 0.98" - ) op.execute( "UPDATE ml_settings SET head_auto_apply_min_positives = 30 " "WHERE head_auto_apply_min_positives = 50" diff --git a/backend/app/models/ml_settings.py b/backend/app/models/ml_settings.py index 3c60497..80f81f9 100644 --- a/backend/app/models/ml_settings.py +++ b/backend/app/models/ml_settings.py @@ -51,10 +51,7 @@ class MLSettings(Base): Integer, nullable=False, default=8 ) head_auto_apply_precision: Mapped[float] = mapped_column( - # Stricter graduation bar (was 0.97) to cut auto-apply misfires - # (operator-asked 2026-07-06): a higher precision target → fewer heads - # graduate and those that do get a higher per-head auto_apply_threshold. - Float, nullable=False, default=0.98 + Float, nullable=False, default=0.97 ) # Earned auto-apply (#114). A graduated head fires (tags images without a # human) when this master switch is on AND the head has at least