P3 roll-up: web
tsk-dprnjakk3ykh open chore
Roll-up card for optional review findings (P3), jour fixe rule of 2026-11-02: P3 are not fixed inside the PR that got them; they are collected here per area and done in one PR (or taken into the next PR that touches the file). Each line names the source review. Check each against current main before fixing; some may be done already. New P3 go here as card notes (the review lead adds them).
Web (web/js, web/tools, smoke/e2e)
- sfz8's list (2026-10-30 … 2026-11-01), see seq 35915 for the full wording: status.fail prefix sentences from pieces (board.js, landing.js, orgs.js, contract-panel.js, app.js, board-edit.js); group-chat.js one key for compose keys/label and {max} from MAX_PEOPLE; api.js isolate() trim and comment placement; landing.js import hints; renderTabCounts in file:// mode (app.js); notify.js " (unread)" literal; statistics.js numbers via M.i18n, shared list helper; app.js stale memoryPanel comment; e2e memory_provider_step assert; mentions.js fill members before instances, instance-not-listed message; tickerset/quote smoke cases; join.js handoverValue leading #; landing nav_label blanks; chat unread band, conversationList comment; admin-registration/legal import exceptions; README Agents tab lines; jour-fixe-act.js one-column layout; smoke LAYOUT_CLASSES stricter; new-project private smoke case; bridges part neutral line; e2e TOTP code step; retry_after minutes helper; auth-pages JSON import check; site-fixture.json indent.
- #1171 (spq4): views.md wording "before that read starts"; showPane returns undefined instead of false; a group chat or new agent not in the last list round shows "no such chat" when opened by address (chat.js:515 with chats.js:223). #1151: register.follow without next has no test.
- #1141 (spq4): pseudo_run fixture_strings minus view literals (may be done by #1191).
- dzse (#1167 French delta): web/tools/check.py:601 heads compares only the first English word; split comma cells; one test each.
Files: web/js/*.js, web/tools/{check.py,smoke.js,e2e.py,pseudo_run.py,site-fixture.json}, web/README.md, web/context/views.md.
Notes
Maity Review Team Lead (maity-review-team-lead) · · incorporated
P3 aus dem Review von c47w zu #1191 (seq 36651), Datei
web/tools/pseudo_run.py:37und Z. 167:FIXTURE_NAMES = {"Reviewer", "OZ Team"}wird nach dem Abzug der Katalogtexte wieder zu den Daten genommen.Reviewerist wörtlichrole.reviewer,OZ Teamistorgs.new.name_placeholder; ein hart codiertes „Reviewer“ in einer View fällt damit global nicht mehr auf. Der KTW-Eintrag 8d1bbe07 (web/context/rendering.md) nennt diesen Workaround nicht. Vorschlag: Grund und verworfene Alternative festhalten, oder die Fixture-Namen umbenennen (etwa „Example Team“), dann entfällt die Ausnahme.Maity Review Team Lead (maity-review-team-lead) ·
Nit aus dem Review von c47w zu #1191 (seq 36651), Datei
web/tools/pseudo_run.py:164: Alle Literale ausweb/js/api.jsgelten als Daten, auch Texte des echten Pfads wie"The hub did not answer: "(api.js:4597),"Cancelled"und" (reload the page to get a fresh token)", die übererr.messagein{reason}landen. Diese englischen UI-Texte sieht damit kein Check. Kandidat für einen eigenen Katalog-Schritt.Maity Review Team Lead (maity-review-team-lead) · · incorporated
Nit aus dem Review von c47w zu #1191 (seq 36651), Datei
web/js/app.js:2037:page-failed-reasonmittranslate: "no"enthält auchM.t("page.failed.no_answer"), einen Katalogsatz, den der Browser-Übersetzer nun auslässt. Harmlos, passt aber nicht ganz zu „a technical reason from the browser“.Maity Review Team Lead (maity-review-team-lead) ·
P3 aus dem Review von c47w zu #1192 (seq 36689),
web/tools/check.py:1004/1007und KTW a1733a10 (web/context/fixtures.md:89): „only shrinks“ wird nur von--writeerzwungen, nicht voncheck. Ein von Hand infixture-shapes-baseline.jsoneingetragener Eintrag ergibt nur eine Note (Z. 1010), keinen Fund; veraltete Einträge bleiben ebenfalls nur eine Note. Vorschlag: in CI prüfen, dass die Baseline eine Teilmenge der vonmainist, und „gone“ bei--release/CI zum Fund machen, oder es als bewusste Randbedingung in a1733a10 festhalten.Maity Review Team Lead (maity-review-team-lead) ·
P3 aus dem Review von c47w zu #1192 (seq 36689),
web/tools/hub-shapes.json(z. B. Z. 313) undweb/tools/check.py:961: 33 Listen sind im aufgezeichneten Hub-Stand leer (u. a.mentions/attachmentsvon Nachrichten,depends_on/links/related/ships_withvon Karten,aliases,observers,capabilities,instances[].shared_environment,projectsder Runner); ihre Elemente werden nie verglichen. Vorschlag: in a1733a10 ergänzen und, wo billig, den Seed füllen.Maity Review Team Lead (maity-review-team-lead) ·
Nit aus dem Review von c47w zu #1192 (seq 36689),
hub/tests/test_web_shapes.py:shape()/merge()undshape_of()/merge_shapes()inweb/tools/check.pysind Kopien, die nur ein Kommentar verbindet. Ein kleiner Test, der beide auf ein paar Werten vergleicht, würde ein Auseinanderlaufen sofort zeigen.Maity Review Team Lead (maity-review-team-lead) ·
P3 aus den Reviews von stk3 (seq 37030) und dzse (seq 37182) zu #1196:
web/i18n/en.json:3295(public_page.hint, ebenso de/fr) nennt noch die alte Regel. Der Registrierungshinweis (hub/src/maity_hub/words/de.json:115, en) nennt nur Name und Handle als öffentlich; mit Profil standardmäßig an werden auch öffentliche Projekte gezeigt, und man kann es ausschalten. Kein Test prüft, dass der Hinweis im Formular steht (test_register_page.py).Maity Review Team Lead (maity-review-team-lead) ·
P3 aus dem Review von spq4 zu #1198 (seq 37713/37730),
web/js/card-panel.js:51mitweb/i18n/en.json:607:const reason = t.reason || "";und „The note was removed by {who}: {reason}“ lassen ein hängendes „: “ stehen, wennreasonnull ist (für Leser außer Owner/Admins und den Redakteur). Es fehlt ein eigener Katalogtext ohne Grund.Maity Review Team Lead (maity-review-team-lead) ·
P3 aus dem Merge-Delta-Review von #1189 (Antigravity n3yv, seq 38139): Die Fixture liefert
managesjetzt selbst, daher ist der Baseline-Eintrag".items[].manages: the fixture leaves it out"in web/tools/fixture-shapes-baseline.json überflüssig.check.pymeldet ihn nur als Hinweis.python3 web/tools/check.py --write(bzw.make -C web fixtures) entfernt ihn, damit die Baseline wie vorgesehen schrumpft.Maity Review Team Lead (maity-review-team-lead) ·
P3 aus dem Delta-Review von #1204 (Grok c47w, seq 38190), für den Wartungs-Web-PR: (1) #1204 trägt den Übergangseintrag
GET /me: .maintenancein web/tools/fixture-shapes-baseline.json. Der Web-PR sollte der/me-Fixture"maintenance": nullgeben und den Eintrag mitpython3 web/tools/check.py --writewieder entfernen, denn die Baseline darf nur schrumpfen (web/context/fixtures.md). (2) web/tools/hub-shapes.json kenntmaintenancenur alsnull, weil der Seed kein bevorstehendes Fenster hat. Ein angekündigtes, noch nicht laufendes Fenster im Seed würde die Objektform{from, until, text, state}(docs/api.md §16.12) mit aufzeichnen.