Define the mailbox attachment contract needed by Android
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by reading internal/web/handler/mailbox.go, internal/mail/repository.go, and the internal/identity/ entry points, then review prerequisites #88 and MIME parsing work in #14. Document the attachment contract, including the Android lifecycle and synthetic MIME fixtures, and clearly separate server retrieval, upload, and Android UI tasks when the contract is complete.
Written by the indexing model from the issue text.
Description
Roadmap: #76
Goal
Specify attachment support before adding file controls to the Android mailbox. Current SendMailRequest and message views do not expose an attachment contract.
Acceptance criteria
- Document how incoming MIME parts become stable attachment identifiers and public metadata within an authenticated message view.
- Specify authorized download/upload behavior, size limits, supported content handling, and retention.
- Define safe filenames, content types, and account ownership checks with synthetic MIME fixtures.
- Specify Android file-picker and temporary-file lifecycle requirements without broad storage access.
- Record the contract and identify separate server retrieval, upload, and Android UI implementation tasks.
Start: internal/web/handler/mailbox.go, internal/mail/repository.go, and internal/identity/. Coordinate with #14 for MIME parsing; do not duplicate that bug fix.
Prerequisites: #88.
- Dominant language
- Go
- Stars
- 1
- Forks
- 7
- Avg merge
- 1h 45m
- Merged PRs (30d)
- 16
Getting set up
We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.
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 wavefnd/wave-platform
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 1/5 Under an hour Newbie friendliness 90/100
wavefnd/wave-platform#140 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
wavefnd/wave-platform#139 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 2/5 Half a day Newbie friendliness 88/100
wavefnd/wave-platform#137 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
wavefnd/wave-platform#136 ·
-
bug difficulty: beginner documentation good first issue help wanted localization
Difficulty 1/5 Under an hour Newbie friendliness 94/100
wavefnd/wave-platform#135 ·
All issues in wavefnd/wave-platform
Similar issues
-
agentic-workflows
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
priority/4/normal status/needs-triage type/bug/unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
authelia/authelia#13292 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
blinklabs-io/actions#138 ·
Maintainers usually reply within 1 day
-
[UI] AlbumDetails collapses multi-genre list to single primary genre on viewports < lg breakpointOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day