tickets
All repositories: gitoria
3.0 KB
# Mission 009 (old 024) — Markdown editor component (ticket tickets.worldapi.org#12)One-shot worker. The architect verifies your report and deploys; you do NOT deploy or touch Byrodin.## Read first1. Ticket #12 and the accepted concept (question ticket #14, confirmed by the creator):`GET https://tickets.worldapi.org/api/projects/tickets.worldapi.org/tickets/12` and `/14` (send a `user-agent`).Accepted: a **framework-independent web component `<md-editor>`** (shadow DOM, restylable via `--md-*` variables),usable in Hybriel apps and anywhere else; **exactly the Markdown subset tickets renders**, the stored value staysplain Markdown; its **own small project** vendored into apps (like `plugins/`); a **toolbar** for the basics (also onphones) and keyboard shortcuts on desktop. "Consider reusability also in other projects."2. `loreana:/media/STORAGE/projects/tickets.worldapi.org/` `CONCEPT.md`, `README.md`, `STATUS.md`, `markdown.hl`(the renderer — the subset), the ident selector as the model of a shadow-DOM component (`ident.worldapi.org/selector.js`).3. `/CONTAINERS/projects/antcolony/README.md` — conventions, lessons ("Build what was described").## Hybriel (standard block)Read `/CONTAINERS/projects/antcolony/docs/hybriel-for-app-workers.md` first (keep both webex LOCAL PATCHES). Report newHybriel findings under "Hybriel issues"; do not edit that guide.## Scope1. New project folder `loreana:/media/STORAGE/projects/worldapi-components/` with `md-editor.js` (plain JS, no buildstep), README (how to embed, attributes/events, restyling), its own browser test page + test.2. Editing is visual (formatted while typing), the value in/out is plain Markdown of exactly tickets' subset; round-tripMarkdown → editor → Markdown is lossless for that subset. Paste of rich text is reduced to the subset. Safe: no rawHTML reaches the DOM.3. Replace every Markdown-capable text field in tickets (new ticket summary, edit summary, comment, state note) with it,vendored into tickets (keep the forms working with and without JS as today, or say why not).4. Phone (390px) and desktop.## Rules- Develop tickets changes in `.scratch/dev-m024`, copy back when green. **Ports 8800–8849 only.** Own ident instance.- No git. No `.env`. Don't touch Byrodin. Don't POST to live tickets. Only kill your own PIDs. Clean up Chromes. Scratchonly in the apps' / project's `.scratch/` on Loreana.- If any action is refused by the permission system, don't retry; report it.- Tickets gate stays green; add editor checks (typing, toolbar, round-trip, paste, XSS). Screenshots 390/1280.- Update READMEs/STATUS. Do NOT edit `CONCEPT.md`. Questions go into the report — the architect files them.- **If the described design is impossible, stop and say why instead of delivering something else.**## Report (final answer, this structure)```## Done## Verified (each: command run + observed output)## Not verified / open## Hybriel issues (repro, observed, expected)## Questions for the creator## Running (URL, PID, log path)```
Branches
- mainmain branch
Latest commits
- bb64d57cmission 012 (ticket #25 API part): every /api/projects/<x>/… route takes the project's id (12-char record id) as well as its slug, same answers byte for byte; tickets stay under their project, no global /api/tickets/<x>. gate 315/0 (old code: the 13 id checks fail), connect 60/0, live-data copy old vs new 1,484 identical, slug vs id 772 identicalmre
- 7538b034mission 011 (ticket #25 web part): short page URLs /<slug> and /<slug>/<number>; /projects/<slug>, /projects/<slug>/<n>, /projects/<slug>/tickets/<n> and /tickets/<ref> answer 301 (current slug); slug pages moved behind hl:web's own routes after construction (they answered /__hl/* and /components/*.hl); reserved slugs refused; API paths unchanged. gate 293/0, connect 60/0, live-data copy 187/0, API old vs new: only page links differmre
- 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