Skip to content

A flash dump read with a programmer earns 3 stars; ipctool's backup keeps 10 - #462

Merged
openipc-ai merged 2 commits into
masterfrom
programmer-dump-stars-458
Oct 11, 2026
Merged

openipc-ai merged 2 commits into
masterfrom
programmer-dump-stars-458

Conversation

@openipc-ai

Copy link
Copy Markdown
Collaborator

A maintainer in the user group: a dump uploaded as a file, read with a
programmer or over the console and TFTP, is worth about a quarter of one ipctool
makes (#458). ipctool reads the chip on the running camera and says with it
what the camera is; a programmer's image is the bytes alone. Both earned 10.

  • reports.Points pays StarsPerRawDump (3) for a programmer's image, a dump new
    to the catalogue; ipctool's backup still earns StarsPerDump (10), and a
    known dump nothing. The two are told apart by the name the server gives a
    backup (RawDumpName, flash.bin; ipctool's is backup.bin), which the sender
    never chooses. ipctool's report joining the image later does not raise it.
  • Nothing already paid changes: on production no programmer image had been
    paid any stars (two are stored, 0 net); the six ipctool backups keep theirs.
  • The site says so: "How stars work" lists the two, the send form's dump
    button reads +3–10 ★, and the new-camera form's lede and dump hint give the
    programmer's 3 (en, ru, zh).

Closes #458

…eeps 10

A maintainer in the user group: a dump uploaded as a file, read with a
programmer or over the console and TFTP, is worth about a quarter of one ipctool
makes (#458). ipctool reads the chip on the running camera and says with it
what the camera is; a programmer's image is the bytes alone. Both earned 10.

- reports.Points pays StarsPerRawDump (3) for a programmer's image, a dump new
  to the catalogue; ipctool's backup still earns StarsPerDump (10), and a
  known dump nothing. The two are told apart by the name the server gives a
  backup (RawDumpName, flash.bin; ipctool's is backup.bin), which the sender
  never chooses. ipctool's report joining the image later does not raise it.
- Nothing already paid changes: on production no programmer image had been
  paid any stars (two are stored, 0 net); the six ipctool backups keep theirs.
- The site says so: "How stars work" lists the two, the send form's dump
  button reads +3–10 ★, and the new-camera form's lede and dump hint give the
  programmer's 3 (en, ru, zh).

Closes #458
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Award 3 stars for raw flash dumps and 10 for ipctool backups

🐞 Bug fix ✨ Enhancement 🧪 Tests 🕐 20-40 Minutes

Grey Divider

AI Description

• Award 3 stars for new programmer-read dumps while retaining 10 for ipctool backups and zero for
 known dumps.
• Explain the different rewards across the club forms and English, Russian, and Chinese guidance.
• Cover submission, editing, review, and displayed rewards in tests.
Diagram

graph TD
  Form["Site forms"] --> API["Report API"] --> Files["Named backups"] --> Known{"Already known?"}
  Known -->|"Yes: 0"| Ledger["Stars ledger"]
  Known -->|No| Type{"Raw dump?"}
  Type -->|"Yes: 3"| Ledger
  Type -->|"No: 10"| Ledger
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Persist an explicit dump source
  • ➕ Makes reward classification independent of the stored filename.
  • ➕ Accommodates additional dump sources without overloading names.
  • ➖ Requires a schema change and classification of existing files.
  • ➖ Adds complexity for the two sources currently distinguished by server-assigned names.

Recommendation: Use the PR's server-assigned filename distinction for this scoped change: it reuses an invariant already established by submission and editing without migrating stored reports. Consider an explicit source field if more dump origins or naming rules are introduced.

Files changed (17) +72 / -38

Enhancement (2) +3 / -2
Club.tsxShow the raw-dump reward in the club rules +1/-1

Show the raw-dump reward in the club rules

• Adds a separate three-star row alongside the ten-star ipctool dump row.

frontend/apps/site/src/components/club/Club.tsx

SendForm.tsxAdvertise a reward range for submitted dumps +2/-1

Advertise a reward range for submitted dumps

• Changes the dump option from a fixed ten stars to 3–10, since the reward depends on the submitted image.

frontend/apps/site/src/components/club/SendForm.tsx

Bug fix (2) +22 / -8
NewCameraForm.tsxShow the correct reward for a new camera's raw dump +2/-2

Show the correct reward for a new camera's raw dump

• Passes both dump rewards to the introduction and changes the programmer-dump hint from ten stars to three.

frontend/apps/site/src/components/club/NewCameraForm.tsx

club.goCalculate distinct raw-dump and ipctool rewards +20/-6

Calculate distinct raw-dump and ipctool rewards

• Adds a three-star raw-dump reward and a shared server-assigned raw filename. Potential-award calculation classifies backups by that name before applying the existing known-dump check; ipctool backups remain ten stars.

service/internal/reports/club.go

Refactor (2) +2 / -2
edit.goUse the shared raw-dump name when editing reports +1/-1

Use the shared raw-dump name when editing reports

• Uses RawDumpName when an edited backup is identified as a raw flash image, keeping its stored name consistent with reward classification.

service/internal/reports/edit.go

handler.goUse the shared raw-dump name on submission +1/-1

Use the shared raw-dump name on submission

• Uses RawDumpName for submitted raw flash images; ipctool backups retain backup.bin.

service/internal/reports/handler.go

Tests (4) +25 / -13
SendForm.test.tsxTest the send form's dump reward range +6/-0

Test the send form's dump reward range

• Checks that the dump button shows 3–10 stars while the photo button still shows one.

frontend/apps/site/src/components/club/SendForm.test.tsx

api_test.goAdjust report lifecycle expectations for raw dumps +7/-7

Adjust report lifecycle expectations for raw dumps

• Updates pending, review, notification, award, rejection, and republication expectations from eleven to four stars for a raw dump plus one other item.

service/internal/club/api_test.go

edit_test.goVerify rewards for edited raw and ipctool backups +7/-2

Verify rewards for edited raw and ipctool backups

• Expects three stars when an edited report gains a programmer-read dump. Adds an assertion that an ipctool backup with its report still earns eleven stars.

service/internal/club/edit_test.go

newcamera_test.goAdjust new-camera programmer-dump award expectations +5/-4

Adjust new-camera programmer-dump award expectations

• Expects four stars for a programmer-read dump and photo in both the review queue and publication result.

service/internal/club/newcamera_test.go

Documentation (6) +18 / -12
boards.en.ymlExplain both dump rewards in English +3/-2

Explain both dump rewards in English

• Distinguishes ipctool and programmer-read dumps in the new-camera introduction and adds a separate raw-dump entry to the stars rules.

data/locales/boards.en.yml

boards.ru.ymlExplain both dump rewards in Russian +3/-2

Explain both dump rewards in Russian

• Distinguishes ipctool and programmer-read dumps in the new-camera introduction and adds a separate raw-dump entry to the stars rules.

data/locales/boards.ru.yml

boards.zh.ymlExplain both dump rewards in Chinese +3/-2

Explain both dump rewards in Chinese

• Distinguishes ipctool and programmer-read dumps in the new-camera introduction and adds a separate raw-dump entry to the stars rules.

data/locales/boards.zh.yml

boards.en.jsonAdd English site strings for raw-dump rewards +3/-2

Add English site strings for raw-dump rewards

• Adds the raw-dump rules entry and distinguishes both dump sources in the new-camera introduction.

frontend/apps/site/src/i18n/boards.en.json

boards.ru.jsonAdd Russian site strings for raw-dump rewards +3/-2

Add Russian site strings for raw-dump rewards

• Adds the raw-dump rules entry and distinguishes both dump sources in the new-camera introduction.

frontend/apps/site/src/i18n/boards.ru.json

boards.zh.jsonAdd Chinese site strings for raw-dump rewards +3/-2

Add Chinese site strings for raw-dump rewards

• Adds the raw-dump rules entry and distinguishes both dump sources in the new-camera introduction.

frontend/apps/site/src/i18n/boards.zh.json

Other (1) +2 / -1
club.tsExpose the three-star raw-dump reward to the site +2/-1

Expose the three-star raw-dump reward to the site

• Adds rawDump to the frontend reward constants while retaining the ten-star dump value for ipctool backups.

frontend/apps/site/src/lib/club.ts

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Linked reports leave dump rewards unclear ✓ Resolved
Description
The localized new_lede, new_dump_hint, and rules rows state the 3★/10★ amounts but never say
that a later linked ipctool report leaves a raw dump at 3★. A member who submits a programmer or
TFTP dump and later links an ipctool report has no localized guidance for whether the original
reward changes, despite the implementation deliberately keeping it unchanged.
Code

data/locales/boards.en.yml[R520-521]

+      new_lede: 'Name the maker and the board, and add photos of it: the board''s front and back, and the label. A maintainer adds it to the catalogue when they publish your report; each photo and file earns {n} ★, and a whole-flash dump nobody sent before {dump} ★ from ipctool, or {raw} ★ read with a programmer.'
    new_dump_hint: 'Optional. Read the chip with a programmer when ipctool cannot run on the camera, for example behind a U-Boot password; a dump nobody sent before earns {n} ★.'
Evidence
The checklist requires the English, Russian, and Chinese star guidance to explain both the decided
awards and any later-report adjustment. The changed guidance names the ipctool and programmer/TFTP
amounts, while the implementation comment explicitly says a later ipctool report does not raise the
raw-dump reward; none of the changed localized strings communicates that policy.

Align multilingual star guidance with the award policy
data/locales/boards.en.yml[520-521]
data/locales/boards.en.yml[545-549]
data/locales/boards.ru.yml[571-572]
data/locales/boards.ru.yml[596-600]
data/locales/boards.zh.yml[515-516]
data/locales/boards.zh.yml[540-544]
service/internal/reports/club.go[27-35]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The English, Russian, and Chinese star guidance explains the 3★ programmer/raw-dump and 10★ ipctool awards but does not explain that linking an ipctool report later does not increase a raw dump's already assigned reward.
## Fix Focus Areas
- data/locales/boards.en.yml[520-521]
- data/locales/boards.en.yml[545-549]
- data/locales/boards.ru.yml[571-572]
- data/locales/boards.ru.yml[596-600]
- data/locales/boards.zh.yml[515-516]
- data/locales/boards.zh.yml[540-544]
- frontend/apps/site/src/i18n/boards.en.json[122-124]
- frontend/apps/site/src/i18n/boards.en.json[174-181]
- frontend/apps/site/src/i18n/boards.ru.json[124-126]
- frontend/apps/site/src/i18n/boards.ru.json[176-183]
- frontend/apps/site/src/i18n/boards.zh.json[121-123]
- frontend/apps/site/src/i18n/boards.zh.json[173-180]
## Recommended Fix
Add equivalent localized wording to the new-camera guidance or star-rules note in all three locales stating that a later linked ipctool report does not raise the raw dump's 3★ reward, then keep the YAML and JSON translations synchronized.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can tweak Display settings with a live preview to see your comment before it ships

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread data/locales/boards.en.yml Outdated
…mer dump's stars

Qodo on #462: the forms gave 3 and 10 but not that a joining ipctool report
does not raise the dump's 3 (en, ru, zh).
@openipc-ai
openipc-ai merged commit 2e33237 into master Oct 11, 2026
2 checks passed
@openipc-ai
openipc-ai deleted the programmer-dump-stars-458 branch October 11, 2026 18:57
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.

Stars for a flash dump: a programmer or TFTP dump earns what an ipctool backup earns

1 participant