Skip to content

refactor(quotes): hard delete du code Quote (#139, PR 1/2) - #170

Merged
RebelliousSmile merged 1 commit into
mainfrom
claude/plan-derniere-issue-l94t6x
Jul 22, 2026
Merged

refactor(quotes): hard delete du code Quote (#139, PR 1/2)#170
RebelliousSmile merged 1 commit into
mainfrom
claude/plan-derniere-issue-l94t6x

Conversation

@RebelliousSmile

Copy link
Copy Markdown
Owner

Première PR de l'épique #139 — Retrait complet des Quotes (hard delete). Cette PR retire tout le code ; les docs/mémoire (#145) suivront en PR 2.

Pourquoi

Quote est un modèle parallèle redondant avec Rapport(kind=DISCUSSION) — surdimensionné au regard de sa valeur. L'épique le supprime physiquement (migration destructive, perte de données assumée).

Ce qui est retiré (couche par couche)

Empreinte : 1222 suppressions / 22 ajouts sur 40 fichiers.

Vérification

  • manage.py check · makemigrations --check = No changes · ruff check . + ruff format --check . · mypy suddenly/ — tous verts.
  • Aucune référence Quote résiduelle hors migrations historiques.
  • pytest : 978 passed. Les 7 « échecs » sont l'artefact environnemental documenté (le test de concurrence test_parallel_requests_serialize_via_row_lock laisse une session DB ouverte et cascade des ERROR sur les tests suivants du batch local) — le test de concurrence et la classe TestLinkOfferFederation passent en isolation, et la CI (fresh DB) était verte avec ce test sur les 6 PR précédentes.

Suite

Refs #139

🤖 Generated with Claude Code


Generated by Claude Code

Épique #139 : Quote est un modèle parallèle redondant avec
Rapport(kind=DISCUSSION), surdimensionné. Retrait complet (hard delete)
de tout le code ; les docs/mémoire (#145) suivront en PR 2.

Couches retirées :
- Modèle Quote/QuoteVisibility/QuoteQuerySet + contrainte/index (#140) ;
  UserUsageStats.total_quotes (champ mort, découplé du compteur de don).
  Migrations destructives 0024_delete_quote + 0011_remove_total_quotes.
- UI/routes/templates (#141) : vues quote_add/quote_create/quote_delete,
  page quotes, cartes/formulaires, blocs dans detail/report_detail/home/
  stories/list.
- API (#143) : QuoteSerializer, quotes_count, endpoints.
- Fédération (#142) : sérialisation AP Note + suddenly:quotes, signaux,
  tâches d'émission. Arrêt silencieux (aucun Delete émis) ; outbox perso
  → collection vide ; inbound quote-Note ignoré (pas de 500).
- Cron (#144) : cleanup_expired_quotes + entrée CELERY_BEAT_SCHEDULE.
- Seed + tests (test_citations supprimé, nettoyage AP/models/views).

1222 suppressions / 22 ajouts. Vérif : check, makemigrations --check,
ruff, mypy verts ; 978 tests passent (7 échecs = artefact
environnemental connu du test de concurrence, passent en isolation).

Refs #139

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YBRFVUtmBW3YSP8Yd2uNpB
@RebelliousSmile
RebelliousSmile merged commit d695772 into main Jul 22, 2026
1 check passed
RebelliousSmile pushed a commit that referenced this pull request Jul 22, 2026
PR 2 de l'épique #139 (après le hard delete du code, #170). Retrait des
mentions Quote de la documentation normative auto-chargée et des user
stories, pour qu'aucun doc chargé au contexte ne décrive une capacité
disparue.

Mémoire : PROJECT_BRIEF, DATABASE (table Quote + total_quotes),
CODEBASE_MAP, CODING_ASSERTIONS (EPHEMERAL_QUOTE_TTL_HOURS), VCS (scope
quotes), DESIGN (quote_card/quoted), API_DOCS (verbes AP + suddenly:
quotes), DEPLOYMENT + alwaysdata (cron cleanup_expired_quotes),
architecture (US-30 obsolète), external/seeds (ligne seed citations).
Règle : 08-activitypub (Quote=Note).
User stories : US-08 « Citations » (Domaine 5) + US-30 retirées, lignes
gherkin et tables de priorité nettoyées.

Archives laissées (record historique, hors #145) : wireframes,
MASTER_PLAN, plans/audits datés, external/bookwyrm-architecture.

Doc-only, aucun code touché. Greps #145 verts.

Closes #145
Refs #139

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YBRFVUtmBW3YSP8Yd2uNpB
RebelliousSmile added a commit that referenced this pull request Jul 26, 2026
…171)

PR 2 de l'épique #139 (après le hard delete du code, #170). Retrait des
mentions Quote de la documentation normative auto-chargée et des user
stories, pour qu'aucun doc chargé au contexte ne décrive une capacité
disparue.

Mémoire : PROJECT_BRIEF, DATABASE (table Quote + total_quotes),
CODEBASE_MAP, CODING_ASSERTIONS (EPHEMERAL_QUOTE_TTL_HOURS), VCS (scope
quotes), DESIGN (quote_card/quoted), API_DOCS (verbes AP + suddenly:
quotes), DEPLOYMENT + alwaysdata (cron cleanup_expired_quotes),
architecture (US-30 obsolète), external/seeds (ligne seed citations).
Règle : 08-activitypub (Quote=Note).
User stories : US-08 « Citations » (Domaine 5) + US-30 retirées, lignes
gherkin et tables de priorité nettoyées.

Archives laissées (record historique, hors #145) : wireframes,
MASTER_PLAN, plans/audits datés, external/bookwyrm-architecture.

Doc-only, aucun code touché. Greps #145 verts.

Closes #145
Refs #139


Claude-Session: https://claude.ai/code/session_01YBRFVUtmBW3YSP8Yd2uNpB

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants