gitoriaLog in with ident

tickets

All repositories: gitoria

ReadmeCodePull requestsReleasesTicketsSettings
Commit0369106e0369106emission 010 (code order) 4/4: README file map + import order + 'Same output' test, STATUS (entry, lessons, how to verify), LOG, report; tests/realdata-baseline.mjs + realdata-compare*.py (a cleanup answers the same on live data), tests/letcount.pymre0369106e/missions/009-md-editor.md

3.0 KB

  1. # Mission 009 (old 024) — Markdown editor component (ticket tickets.worldapi.org#12)
  2. One-shot worker. The architect verifies your report and deploys; you do NOT deploy or touch Byrodin.
  3. ## Read first
  4. 1. Ticket #12 and the accepted concept (question ticket #14, confirmed by the creator):
  5. `GET https://tickets.worldapi.org/api/projects/tickets.worldapi.org/tickets/12` and `/14` (send a `user-agent`).
  6. Accepted: a **framework-independent web component `<md-editor>`** (shadow DOM, restylable via `--md-*` variables),
  7. usable in Hybriel apps and anywhere else; **exactly the Markdown subset tickets renders**, the stored value stays
  8. plain Markdown; its **own small project** vendored into apps (like `plugins/`); a **toolbar** for the basics (also on
  9. phones) and keyboard shortcuts on desktop. "Consider reusability also in other projects."
  10. 2. `loreana:/media/STORAGE/projects/tickets.worldapi.org/` `CONCEPT.md`, `README.md`, `STATUS.md`, `markdown.hl`
  11. (the renderer — the subset), the ident selector as the model of a shadow-DOM component (`ident.worldapi.org/selector.js`).
  12. 3. `/CONTAINERS/projects/antcolony/README.md` — conventions, lessons ("Build what was described").
  13. ## Hybriel (standard block)
  14. Read `/CONTAINERS/projects/antcolony/docs/hybriel-for-app-workers.md` first (keep both webex LOCAL PATCHES). Report new
  15. Hybriel findings under "Hybriel issues"; do not edit that guide.
  16. ## Scope
  17. 1. New project folder `loreana:/media/STORAGE/projects/worldapi-components/` with `md-editor.js` (plain JS, no build
  18. step), README (how to embed, attributes/events, restyling), its own browser test page + test.
  19. 2. Editing is visual (formatted while typing), the value in/out is plain Markdown of exactly tickets' subset; round-trip
  20. Markdown → editor → Markdown is lossless for that subset. Paste of rich text is reduced to the subset. Safe: no raw
  21. HTML reaches the DOM.
  22. 3. Replace every Markdown-capable text field in tickets (new ticket summary, edit summary, comment, state note) with it,
  23. vendored into tickets (keep the forms working with and without JS as today, or say why not).
  24. 4. Phone (390px) and desktop.
  25. ## Rules
  26. - Develop tickets changes in `.scratch/dev-m024`, copy back when green. **Ports 8800–8849 only.** Own ident instance.
  27. - No git. No `.env`. Don't touch Byrodin. Don't POST to live tickets. Only kill your own PIDs. Clean up Chromes. Scratch
  28. only in the apps' / project's `.scratch/` on Loreana.
  29. - If any action is refused by the permission system, don't retry; report it.
  30. - Tickets gate stays green; add editor checks (typing, toolbar, round-trip, paste, XSS). Screenshots 390/1280.
  31. - Update READMEs/STATUS. Do NOT edit `CONCEPT.md`. Questions go into the report — the architect files them.
  32. - **If the described design is impossible, stop and say why instead of delivering something else.**
  33. ## Report (final answer, this structure)
  34. ```
  35. ## Done
  36. ## Verified (each: command run + observed output)
  37. ## Not verified / open
  38. ## Hybriel issues (repro, observed, expected)
  39. ## Questions for the creator
  40. ## Running (URL, PID, log path)
  41. ```

Branches

Latest commits

  • 0369106emission 010 (code order) 4/4: README file map + import order + 'Same output' test, STATUS (entry, lessons, how to verify), LOG, report; tests/realdata-baseline.mjs + realdata-compare*.py (a cleanup answers the same on live data), tests/letcount.pymre
  • a75e0279mission 010 (code order) 3/4: let only where a variable is reassigned or re-bound in a loop body (456 lets → plain declarations; Hybriel refuses a plain declaration inside a loop on its 2nd pass). gate 249/0, connect 60/0, real-data reads identical, a 50-step write sequence (API + faces) identical to the old codemre
  • e9d5c618mission 010 (code order) 2/4: one lib/ file per topic — store.hl split into projects / tickets (+ relations) / events / tickets-helpers, util.hl shared helpers (env, storage dir, URLs, sorts, Vienna time), the function routes out of project.hl into lib/api.hl (thin; auth/filters/Accept in api-helpers.hl), invite + member-removal logic out of the faces/routes into invites.hl / tickets.hl; project.hl is the map. /login/callback gets req + the session store by reference. gate 249/0, connect 60/0, real-data reads identicalmre
  • 97e269b5mission 010 (code order) 1/4: .hl files out of the root — lib/ (store, users, connections, invites, migrate, markdown, mdview, import = ticketfile, util = localtime, jsoncheck, api-helpers = api), tools/import.hl, components/styles.hl; import paths only. gate 249/0, connect 60/0, real-data reads identicalmre
  • 38f9d10ftickets: Hybriel master 06617221 (plugin allocators 3a781359 + 413f60e4, mpackdb 2cb7ae5e, http1 773de63e); gate 249/0, connect 60/0mre
  • d3db6139tickets: Hybriel master 190aa11d (fc838894 GC correctness, #126 closure scopes, #127); gate 249/0, connect 60/0mre
  • bce182e3tickets: Hybriel master 7eea0d32 (#126 memory, #48 lambda copies its argument); migrate.hl lambdas take &logmre
  • 4137be0fantcolony#40: mission references point to the moved missionsmre
  • 9bfba36aantcolony#40: history (LOG.md), worker briefs (missions/) and reports moved here from antcolony, numbered per project; old numbers in antcolony docs/mission-map.mdmre
  • c7bd2645tickets: Hybriel master 73267707 (#122 fixed); compactNow workaround removed (#110 covered)mre
  • 2ab91ee9tickets: gate checks rows appear once (session sync); re-vendor to ff51cf46 stopped on hybriel#122, stays 837fe120mre
  • e01c2b1dtickets#24: installable app (manifest, service worker, offline list), own icon; gate waits for the hello's pongmre
  • 752fbb7fdeploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
  • 38bdd5e4deploy.sh: never send .git or .gitignore to Byrodinmre
  • f12fa1bcState of 2026-09-27, before the move to gitoriamre