You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*`.github/workflows/ci.yml` added — runs `flutter analyze` + `flutter test --coverage` on every PR and push to `master`; enforces ≥ 80 % line coverage via `VeryGoodOpenSource/very_good_coverage@v3`; uploads report to Codecov.
12
+
13
+
### Contribution rules
14
+
* 80 % minimum test coverage enforced in CI — PRs that drop below this threshold cannot be merged.
15
+
*`CLAUDE.md` updated with contribution rules, refreshed block types table, and updated backlog.
16
+
17
+
### Tests
18
+
* Added `test/unit/block_entities_test.dart` — `toJson()` and `type` getter for all 14 block entities.
19
+
* Added `test/unit/html_style_builder_test.dart` — `HtmlStyleBuilder.build()` with various configs.
@@ -159,6 +164,15 @@ When building new features, always work bottom-up:
159
164
-`demo/lib/createnote.dart` — editor usage example
160
165
-`demo/test_data/` — sample EditorJS JSON and styles JSON
161
166
167
+
## Contribution Rules
168
+
169
+
1. All new code must be covered by unit or widget tests.
170
+
2.**Minimum test coverage: 80 %** — the CI workflow enforces this via `VeryGoodOpenSource/very_good_coverage`. PRs that drop coverage below 80 % will fail CI and cannot be merged.
171
+
3. Run `fvm flutter analyze` locally before pushing — zero issues required.
172
+
4. Run `fvm flutter test --coverage` locally and verify the coverage threshold.
173
+
5. Follow the Clean Architecture layer rules: no Flutter imports in `domain/`, no direct widget dependencies in `data/`.
174
+
6. New block types must be added bottom-up: entity → mapper → renderer → (editor) → register in both registries → export from barrel.
175
+
162
176
## Git Workflow
163
177
164
178
**This repo has branch protection. Direct commits to `master` are not allowed.**
@@ -216,7 +230,7 @@ When building new features, always work bottom-up:
216
230
217
231
## Versioning
218
232
219
-
Current version: `0.1.0` (in `pubspec.yaml`).
233
+
Current version: `0.5.0` (in `pubspec.yaml`).
220
234
221
235
When making changes, always update `CHANGELOG.md` with a new entry at the top following the existing format:
222
236
- Bump the patch version for bug fixes
@@ -225,8 +239,9 @@ When making changes, always update `CHANGELOG.md` with a new entry at the top fo
225
239
226
240
## Known Issues / Backlog
227
241
228
-
- Image `caption`, `withBorder`, `stretched`, `withBackground` fields parsed but not rendered
229
-
- Nested lists not supported
230
-
- No HTML sanitization before passing to `flutter_html` (XSS risk with untrusted JSON)
231
-
- All tests are commented out — need full test coverage
232
-
-`quote`, `code`, `table`, `checklist` blocks not yet implemented
242
+
-`image_picker` is declared as a dependency but `ImageEditor` only accepts a URL string — picker not wired up
243
+
- No `EditorController` content persistence to local storage (save/load)
244
+
- No inline link editor in paragraph (currently inserts a `<a>` paragraph block via dialog)
245
+
- No drag-to-reorder for blocks (only up/down buttons)
246
+
- Typing history not tracked by undo/redo (only structural operations are undoable)
247
+
- pub.dev publication pending — description, topics, and example are ready but package has not been published yet
0 commit comments