Repository navigation
docs: README + mermaid architecture, real thumbnail, marketplace draft - #16
Conversation
…tplace draft - README: rewritten — value-prop table, mermaid architecture incl. persistence flow (save/load round-trip to usr/chats/<id>/chat.json), install (Hub + manual), zero-config reference, comment record schema, dev/test guide, security. - thumbnail.png: replace 79-byte stub with a real square 512x512 PNG (2,751 B, <20KB). - docs/marketplace-draft.md: staged index.yaml (title/description<500/5 tags), raw screenshot URLs with 404-until-public note, thumbnail spec, honest flip-time screenshot-capture task, pre-submission checklist. Screenshots intentionally not fabricated — captured at flip time against a live A0 (the auth-gated shared dev instance here is not usable for honest capture); the e2e BDD suite drives the exact flows that produce them.
|
🚫 Merge blocked — |
1 similar comment
|
🚫 Merge blocked — |
…of a fixed 8s wait
The delete step did waitForSelector('.cc-modal-item', {timeout: 8000}) right after
clicking the toolbar button. On the slow fork the lazy modal mount + row render
races that fixed window, so the scenario timed out intermittently (2 runs).
Now the step treats 'modal open with its row rendered' as a state to reach:
retry the open click up to 3x with a 15s visibility wait, then assert the row is
visible before clicking delete. Assertions are unchanged — the scenario still
asserts the end state (no comments, and gone after a reload).
|
🚫 Merge blocked — |
…oking) The two red scenarios (comment remembered / comment deleted) drove the Alpine store directly and manually called persist(), violating the feature file's own hard rule #2 (real triggers, no internal state-poking). Every scenario that used the real UI pipeline passed; only the store-poking ones failed. - add: toolbar -> modal -> fill .cc-modal-add-input -> click add btn - delete: click .cc-modal-del, assert the row count drops - empty: assert the add button is DISABLED on a blank draft (the real guardrail) instead of poking the store - no-comments / gone-after-reload: assert on visible .cc-modal-item count + .cc-modal-empty, not store.comments.length Manual persist() removed from both target scenarios: if the real flow does not save, the reload assertions must catch it.
|
🚫 Merge blocked — |
…y gate) isVisible() already resolves false for a not-yet-rendered element, so the .catch(() => false) was swallowing real failures for no benefit — exactly what the honesty gate exists to catch.
Phase 4 (docs excellence):
index.yaml(title 13 chars, description 330<500, 5 tags), raw screenshot URLs + 404-until-public note, thumbnail spec, pre-submission checklist.Screenshots: intentionally NOT fabricated. The live A0 here is auth-gated/shared (no honest capture path), and mockups-as-screenshots would violate the no-fake rule. The marketplace-draft documents the flip-time capture task; the e2e BDD suite already drives the exact flows.
No public flip, no marketplace PR (per brief).