Skip to content

docs: drop the unimplemented report feature and reframe base64 storage - #18

Merged
duuyguyiilmaz merged 1 commit into
mainfrom
chore/drop-reports
Aug 31, 2026
Merged

duuyguyiilmaz merged 1 commit into
mainfrom
chore/drop-reports

Conversation

@duuyguyiilmaz

Copy link
Copy Markdown
Owner

Two entries under Known limitations were not limitations.

The report mechanism

Never built. Carrying it as an open gap invited the reading that the app is unfinished, when in fact the feature is simply not part of it.

Removed from the README, from the firestore.rules comment, and from the rules test that used it as an example. The test itself stays — that an unmatched path fails closed is a real security property, worth keeping whether or not reports ever existed — but it now asserts the general rule instead of naming a collection nobody will recognise.

Base64 file storage

A decision, not an unresolved problem. Firebase Storage needs the Blaze plan; this project stays on Spark; encoding the file into the note document is how uploads work at all under that constraint.

It moves to Key decisions alongside the other trade-offs. The ~650 KB ceiling stays documented word for word — it is the first thing a reviewer will ask about, and the app is built around the number rather than surprised by it: images are downscaled to fit, larger PDFs are rejected with a message that says why.

A latent bug this uncovered

backfill-created-at.js loses its shebang.

The repo normalises line endings, so a Windows checkout gives the file CRLF — and a shebang ending in \r is one esbuild does not strip, which made the test importing it fail to parse with a SyntaxError pointing at the import statement.

CI never saw it, because Linux checkouts get LF. It only surfaced after the merged branch from #17 was checked out locally. The script is always invoked through node or the npm script, so the line bought nothing; a comment now says why it must not come back.

Verification

Firestore suite: 40 tests pass. Android suite: 107.

🤖 Generated with Claude Code

Two entries under "Known limitations" were not limitations.

The report mechanism was never built. Carrying it as an open gap invited the reading
that the app is unfinished, when in fact the feature is simply not part of it. Removed
from the README, from the firestore.rules comment, and from the rules test that used it
as an example. The test itself stays — that an unmatched path fails closed is a real
security property, worth keeping whether or not `reports` ever existed — but it now
asserts the general rule instead of naming a collection nobody will recognise.

Base64 file storage is a decision, not an unresolved problem. Firebase Storage needs the
Blaze plan; this project stays on Spark; encoding the file into the note document is how
uploads work at all under that constraint. It moves to Key decisions alongside the other
trade-offs. The ~650 KB ceiling stays documented word for word — it is the first thing a
reviewer will ask about, and the app is built around the number rather than surprised by
it: images are downscaled to fit, larger PDFs are rejected with a message that says why.

Also removes the shebang from backfill-created-at.js. The repo normalises line endings,
so a Windows checkout gives the file CRLF, and a shebang ending in \r is one esbuild
does not strip — which made the test importing it fail to parse with a SyntaxError
pointing at the import statement. CI never saw it, because Linux checkouts get LF; it
only broke after the merged branch was checked out locally. The script is always invoked
through node or the npm script, so the line bought nothing. A comment now says why it
must not come back.

Firestore suite: 40 tests pass. Android suite: 107.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@duuyguyiilmaz
duuyguyiilmaz merged commit edd0fee into main Aug 31, 2026
2 checks passed
@duuyguyiilmaz
duuyguyiilmaz deleted the chore/drop-reports branch August 31, 2026 13:38
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.

1 participant