core: NewPeriodicTask.kwargs is written and read by nothing
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start with crates/flexiq-python/src/py_queue/mod.rs and scheduler/maintenance.rs to trace how kwargs is represented and whether it reaches fired jobs. Then review #812 for the migration and contract implications; done means choosing and implementing one disposition for the field with the corresponding migration, behavior, or documentation.
Written by the indexing model from the issue text.
Description
NewPeriodicTask.kwargs and PeriodicTask.kwargs exist end to end — struct field, column, all three backend implementations — and nothing writes them or reads them.
Nothing writes it. The Python binding takes args and never receives a separate kwargs (crates/flexiq-python/src/py_queue/mod.rs), because the decorator folds args and kwargs into one payload before it crosses the boundary. The Rust shell (#916) writes kwargs: None.
Nothing reads it. Scheduler::check_periodic builds the fired job's payload from task.args alone (scheduler/maintenance.rs).
So a value written there would be stored faithfully and then ignored at fire time — which is the bad shape for a dead field: it looks usable.
What to decide
- Drop it, with a migration. Needs a check that no deployment has ever written it, and it costs a
drop_column— see #812 for what that involves and what it does to the contract level. - Use it: have
check_periodicmergekwargsinto the fired payload. That means deciding how a storedargsenvelope and a storedkwargsmap combine into one call envelope, which no shell currently has an opinion about because none of them send both. - Document it as reserved, if the column is wanted for a future shape and the cost of removing it is not worth paying.
Anything is better than the current state, where it reads as a supported field.
Found while building the Rust shell (#916).
- Dominant language
- Rust
- Stars
- 20
- Forks
- 2
- Avg merge
- 5h 10m
- Merged PRs (30d)
- 127
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ByteVeda/flexiq
-
area/ci bug java P2 tests
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
area/wire enhancement
Difficulty 5/5 Over a week Newbie friendliness 42/100
-
area/server enhancement P1
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
P2 rust tests
Difficulty 3/5 1-2 days Newbie friendliness 65/100
-
ci deployment P1 packaging
Difficulty 2/5 1-3 hours Newbie friendliness 45/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100