Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

fix(queue): F1 版本维度收敛——family 启动校验 + budget 快照,删除永久 pending

Open
#328 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Active
Tech stack
python
Domain
backend

Research direction

Start by reading the version handling in task_queue.py, especially the cited checks at lines 795–801 and 1727–1741, then trace how workers validate queue configuration at startup. The issue calls for changing version and budget handling across messages and worker startup. Done means the listed rolling-upgrade, startup-rejection, envelope-field, and environment-ledger acceptance criteria pass.

Written by the indexing model from the issue text.

Description

优先级 P1 · 依赖:无

基线 HEAD = 658a912f

Summary

6 个版本类字段混在一起;其中两个会让消息永久 pending:

  • config_family 不匹配 → 不 ack、留 pending(task_queue.py:795-801);
  • budget_generation 不匹配 → 留 pending(task_queue.py:1727-1741)。

唯一出口 task_max_age_seconds 默认 0(关闭)。

建议

  • 只保留两个版本维度:wire schema + IR;
  • config_family 移到 worker 启动校验:queue/group/dlq/namespace 不匹配拒绝启动;
  • budget_generation 换成消息上的预算快照(max_deliveries 一个整数);
  • tenant_generation 保留为身份字段,不计入版本预算;
  • 除 schema-too-new → DLQ 外,不再有永久 pending 路径。

验收

  • 队列改名滚动升级:无消息卡 pending;连错队列的 worker 启动失败;
  • 信封只剩 schema_version + tenant_generation + 预算快照;
  • env/开关进入账本,每季净减 1。

边界

  • 不改 schema 语义;不做新版本维度(需 ADR + 删除计划)。
Dominant language
Python
Stars
0
Forks
1
Avg merge
2h 33m
Merged PRs (30d)
9

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from jeffkit/plaita

All issues in jeffkit/plaita

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.