Repository navigation
core: a read-only window's Memory panel still offers its writes and says nothing about why - #2277
Conversation
c239506 to
15fa837
Compare
15fa837 to
df54b8a
Compare
|
Ready to merge: the three read-only slices are on one tip,
Measured on that tree: One thing this branch adds beyond the three slices: No linked pull request or claim is replaced by this one; you may merge this tip once its checks are green. |
|
@Birfy — Tier is T1, so no PASS is needed for this one — the red check is Three seats in one PR, each
Author's numbers: the three source fixes plus one build + one Please take this tip for the queue (or run the guard again on it — its earlier run predates the last rebase). |
…ite (ThinkFlowLab#2276, ThinkFlowLab#2279, ThinkFlowLab#2283) Three read-only slices on one branch, because they all end in the same client bundle and the same generated patch split: one build and one generate serve the three. - ThinkFlowLab#2276: the Memory panel no longer offers Remove or the ask form in a read-only window (the host refuses memory-forget and memory-ask), and says why in the host's own sentence; the entries and Regenerate summary still work. - ThinkFlowLab#2279: the details drawer's Settings view draws the host's read-only sentence in the form's place instead of mounting BotSettingsForm, reading the same window lock as the settings page. - ThinkFlowLab#2283: the ask_user card draws no answer control in a read-only window, and keeps the answers it already holds. `src/client/questions.js` is an upstream file FlyBot edits, so it also gains its topic in patches/ds-bot/topics.json — without it generate refuses the whole split. Tests: core/test/memory-panel-readonly.test.js, core/test/details-bot-settings-readonly.test.js, core/test/questions-readonly.test.js.
df54b8a to
bb5a863
Compare
|
@Birfy — review request for PR #2277 at tip It carries three read-only slices on one tip (#2276 memory page, #2279 Bot settings form, #2283 ask_user card), rebased onto Changed since
FlyBot Test's advisory read at this tip (not a gate, your conclusion is): both modes rendered from the real modules — locked details overview 10 controls with no The |
|
Verdict: PASS at bb5a863 Ran at this tip: Red first: the same command with What I checked at the tip
Not run: the bench smoke test — no |
Fixes #2276
Fixes #2279
Fixes #2283
Three read-only slices on one branch. They all end in the same client bundle and the same generated patch split, so they share one build and one
generate: the alternative was three PRs each rewriting0008-client-bundle.patchand fighting overcore/client.js.What each one fixes
core/src/client/memory-panel.js, +9/−5): a read-only window no longer draws Remove or the ask/update form, both of which the host refuses (memory-forget,memory-ask), and says why in the host's own sentence fromroster.readOnly. The entries themselves and Regenerate summary (a read) keep working. Test:core/test/memory-panel-readonly.test.js(3 tests).core/src/client/details-drawer.js, +5/−3): it draws the host's read-only sentence in the form's place instead of mountingBotSettingsForm, reading the same window lock (lockedWindow) the settings page reads. A writable window keeps the form unchanged. The same file hands the roster back toScheduleSummary: without it the details overview drew its "No scheduled tasks yet. Add one" entry in a read-only window, and that entry opens the create form a locked Settings page does not draw (core: a read-only window still offers every scheduled-task write, and a refused Pause/Resume/Delete says nothing #2232/P-457). The suite for this change now renders the overview path, becausecore/test/schedules-client.test.jscallsScheduleSummarywith a roster of its own and cannot see a call site that forgets one. Test:core/test/details-bot-settings-readonly.test.js(3 tests).core/src/client/questions.js+38/−24,core/src/client/cells.js+1/−1): a read-only window draws no answer control on the card, and the answers it already holds stay readable. Test:core/test/questions-readonly.test.js(6 tests).docs/subsystems/core-client.mdcarries all three bullets, and each change has its own fragment underchangelog.d/(#2276, #2279, #2283).Files
21 files,
+17621/−16580. The semantic change is six files plus three new tests, three changelog fragments and the one-linetopics.jsonmapping; everything else is the generated split:core/client.jsand its0008-client-bundle.patch(a module-order relocation ofquestions.jsandschedules.jsinside the bundle — the bulk of the line count, not new code),0001-core-fixes.patch,0003-flybot-api-client.patch,0012-room-membership.patch, and the three whole-file mirrors underpatches/ds-bot/files/test/.patches/ds-bot/topics.jsonis in the diff for one reason:src/client/questions.jsis an upstream file FlyBot edits, sogeneraterefuses the split until that file has a topic (0003-flybot-api-client), and without that one linecore/cannot be rebuilt.Red first, then green
rostertoScheduleSummary,core/test/details-bot-settings-readonly.test.jswas# tests 3 / # pass 2 / # fail 1,no create entry is drawn in a read-only window— actual['No scheduled tasks yet. Add one'], expected[]. With the roster passed again it is3/3/0.3/3/0and the ask_user card6/6/0on this tip.Evidence, measured on this tip's tree
TZ=UTC node --import ./test/harness-resolve.mjs --test <file>:memory-panel-readonly3/3/0,details-bot-settings-readonly3/3/0,questions-readonly6/6/0(tests/pass/fail).# tests 173 / # pass 173 / # fail 0:memory97/97/0,memory-empty6/6/0,memory-search4/4/0,schedules-client52/52/0,questions2/2/0,settings-readonly-head3/3/0,sidebar-readonly4/4/0,composer-locked2/2/0,readonly-window-reads3/3/0.TZ=UTC npm run verifyat the repo root — exit 0 on this tree (core lint +arch-docs, plugin lint,build-client.mjs --check,ds-bot-patches.mjs check, the core suite and both plugin suites).ARCH_DOCS_BASE=89125458 npm run lint—Found 74 warnings and 0 errors(warnings pre-existing),arch-docs: OK (21 changed file(s)).node scripts/ds-bot-patches.mjs check:node scripts/ds-bot-patches.mjs canonical—ok patches/ds-bot/ is what generate writes (generate is a no-op):generatewas run twice on this tree and the second pass wrote nothing.npm run build(incore/) reproduces the committedcore/client.jsbyte-for-byte: a second build leaves the tree clean.19e206econto89125458after core: the read-only reads test passes on a dry answer — assert each row's own key #2280 merged, andbuild,generate,check,canonicalandverifywere all re-run there.What I did not run
core/index.jsand nocore/src/host/file.Verified head:
bb5a863229103b45a50baec3ca71d3d4e295e4a8(treee43d9a1538ed12b01adad475f2c856ab3fe9418b, single parent891254589abb9aa6ac42bc1bb64874c716648876).