Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
3412c02
Every tool's IDE drops its saves of the keys the defaults hook answer…
KubaO Nov 3, 2026
a3e76ac
BUGS-TO-REPORT: thirteen defects from the Starting a project trials o…
KubaO Nov 4, 2026
d236685
IDE: the Starting a project chapter (five pages under /tB/IDE/Startin…
KubaO Nov 4, 2026
9eb9ec6
WIP.Harness: --no-save-ide-settings is read after the first-run quest…
KubaO Nov 4, 2026
4f2ef03
IDE Starting chapter: its 14 pictures in both themes and as SVG (two …
KubaO Nov 4, 2026
2e95a96
BUGS-TO-REPORT: Cancel in New Project Options of an import leaves the…
KubaO Nov 4, 2026
ee11ec7
WIP: nothing writes outside the cloned repository and the temp folder…
KubaO Nov 4, 2026
c050080
shoot_docs: a picture whose two themes show different text fails (the…
KubaO Nov 4, 2026
d5f357b
Starting a project: a shorter See Also line, so the landing page's la…
KubaO Nov 4, 2026
afdf015
No error report leaves a tool's IDE: with the machine's agreement, a …
KubaO Nov 4, 2026
61dcca8
BUGS-TO-REPORT: ten defects from the Troubleshooting trials on BETA 1…
KubaO Nov 4, 2026
7902b99
IDE: the When something goes wrong chapter (four pages under /tB/IDE/…
KubaO Nov 4, 2026
7916261
Two See Also lines that each took a page of the book to themselves go…
KubaO Nov 4, 2026
20834ef
IDE: the When something goes wrong chapter's 8 pictures, in both them…
KubaO Nov 4, 2026
ac7c826
IDE: the Reference pass and the tour; every IDE page is in the book, …
KubaO Nov 4, 2026
9b2d84d
IDE: the tour opens on a labelled picture of the window with a projec…
KubaO Nov 4, 2026
cb1616a
Screenshots retaken on BETA 1034: 59 pictures changed, 1 taken by rev…
KubaO Nov 4, 2026
07c1709
IDE: Samples says what each of the 26 samples shows, from its source,…
KubaO Nov 4, 2026
60f6f21
BUGS-TO-REPORT: four defects found checking the Samples page on BETA …
KubaO Nov 4, 2026
f4f98ff
IDE: NOTEs for Start with no Main and for a DLL that names no startup…
KubaO Nov 4, 2026
15a7062
The private scratch folder is .claude/scratch, no longer .claude/tool…
KubaO Nov 4, 2026
b5ab4b1
WIP.Screenshots: an image taken from the files under ide/ counts as r…
KubaO Nov 5, 2026
b1ac40e
Friend gets a page of its own: where it is allowed, what it hides and…
KubaO Nov 5, 2026
8d5404b
BUGS-TO-REPORT: the Delegate entry is captured in existing #2001, its…
KubaO Nov 5, 2026
3cdeb8e
Wisdom: export now reaches #releases, threads under text channels and…
KubaO Nov 5, 2026
a670bfe
Wisdom: an agent has Bash, so it is read-only by its instructions alo…
KubaO Nov 5, 2026
39950f3
Wisdom: staging.md takes 299 additions from 322 threads and months: 2…
KubaO Nov 5, 2026
a78235b
Type and UDTs: a Type_Conversion of an array element ends as a member…
KubaO Nov 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1,089 changes: 1,082 additions & 7 deletions BUGS-TO-REPORT.md

Large diffs are not rendered by default.

28 changes: 24 additions & 4 deletions WIP.Harness.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ front of the compiler.
exit code 1 if the project has errors:

```sh
node scripts/tbbuild.mjs C:/probe/AttributeExplore.twinproj
node scripts/tbbuild.mjs "$TEMP/probe/AttributeExplore.twinproj"
```

It finds the IDE itself --- the newest `twinBASIC_IDE_BETA_<n>` on
Expand Down Expand Up @@ -1209,12 +1209,32 @@ browser target, auto-attaches to every target with `waitForDebuggerOnStart`, add
with `Page.addScriptToEvaluateOnNewDocument` and resumes it. The page is `about:blank` when attached, and
never navigates twice. The script puts a setter on `window.hostAppObject`, which `main2.js` assigns, and
wraps the host object: `GetIDESetting` answers `""` for the blanked keys and `"{}"` for `GENERAL` and
`GENERAL2`, every other call goes through with `this` bound to the real object. The keys it left
unanswered are the licence's, `LICENCEAGREEMENTV3`, `ALLOWERRORREPORTINGV3`, `PUBLISHER` and `NEWYEAR_*`.
`GENERAL2`, `SaveIDESetting` of those keys does nothing, and every other call goes through with `this`
bound to the real object. The keys it left unanswered are the licence's, `LICENCEAGREEMENTV3`,
`PUBLISHER` and `NEWYEAR_*`.
**No error report leaves a tool's IDE.** The IDE posts one to `https://twinbasic.com/notify` for each
native exception and page error when `ALLOWERRORREPORTINGV3` says `AGREED_`, and a reproducer that crashes
the compiler is such an exception, so a machine whose owner agreed reported its test crashes (until
2026-11-04). The hook answers that key `DISAGREED_TOOLS`, and `window.fetch` answers a request for that
address itself and counts it in `__tbDefaults.reports`, in case a page turns reporting on.
`test/ide-folders.test.mjs` tests both with a stand-in `fetch`, which is why it never sends anything.
The saves are dropped for two keys' sake. `main.js` tests `g_DontSaveIdeSettings`, which is what
`--no-save-ide-settings` sets, before every save but those of `OBJECT_BROWSER`, `NEWFRONTPAGE` and
`PUBLISHER`, so a tool's IDE wrote the first two to the user's registry on BETA 1034: `NEWFRONTPAGE` as
soon as the New / Open Project dialog changed section or closed. `PUBLISHER` is written only when
someone signs in on the Package Publishing panel.
**The flag does not cover a first run.** The page reads it in `parseCommandLine`, after the first-run
questions, so while the licence agreement, the error-reporting question and the first-run IDE Options
are up, `g_DontSaveIdeSettings` is false and `LICENCEAGREEMENTV3`, `ALLOWERRORREPORTINGV3` and `GENERAL` are
written (`bugs/no-save-flag-unguarded-saves`). A tool's IDE is not a first run, because the hook answers
`GENERAL` and the machine's registry holds both answers. A test or a shot that makes one answers those keys
`""` from a proxy in front of the hook, in from the document's start, and that proxy blocks every
`SaveIDESetting` (`test/ide/starting-kit.mjs`).
A new build can add a key, which is read from the user's registry until it is blanked: BETA 1023 added
`OBJECT_BROWSER` (the Object Browser's view, filters, sorts and pane sizes) and BETA 1033 `NEWFRONTPAGE` (the
New / Open Project dialog's section), both blanked since 2026-11-02. After a new BETA, list the keys the page passes
to `GetIDESetting` (a search of the install's `ide/*.js` for the call) and compare them with `BLANKED_KEYS`.
to `GetIDESetting` (a search of the install's `ide/*.js` for the call) and compare them with `BLANKED_KEYS`, and list
the `SaveIDESetting` calls that do not test `g_DontSaveIdeSettings`.
The recent lists are left alone: `test/ide/recent-projects-copies.test.mjs` needs the IDE's own, and
`shoot_docs.mjs`'s `PAGE_DEFAULTS` empties them where a picture shows them.

Expand Down
2 changes: 1 addition & 1 deletion WIP.HelpAddin.md
Original file line number Diff line number Diff line change
Expand Up @@ -1286,7 +1286,7 @@ not: a restart saves a harness about a second against opening a new IDE.
and puts context menus and hovers at the pointer's position times the zoom; the font
options scale text but not icons or controls. Emulated device scaling (what a WebView2
`ZoomFactor` does) was right throughout, so whole-IDE zoom needs that host call
upstream. The probe and pictures are in `.claude/tooling-review-scratch/zoom/`.
upstream. The probe and pictures are in `.claude/scratch/zoom/`.

**Lookup:**

Expand Down
25 changes: 14 additions & 11 deletions WIP.IDE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# The IDE section — finishing it

The IDE section (`docs/IDE/`, `/tB/IDE`) is being rewritten so that every page is fit for
the book. The goal is that `docs/_book.yml` holds no IDE entry under `left_out:`. This file
The IDE section (`docs/IDE/`, `/tB/IDE`) has been rewritten so that every page is fit for
the book, and `docs/_book.yml` holds no IDE entry under `left_out:`: keep it so. This file
covers the structure, the conventions, where each fact comes from, and how a chapter is
written. Owner decisions:

Expand All @@ -12,6 +12,10 @@ written. Owner decisions:

The section is not bound to its current structure. The existing pages are raw material.

Where the work stands, what is next and what is open is in the kit, `TODO.md` in
`.claude/scratch/ide-docs/` (gitignored), under *RESUME HERE*: read it before anything
else. The kit also holds each chapter's fact sheet and its briefs.

## What "book-ready" means for a page

- No heading without text under it, no TODO, and no list of labels copied off a screenshot.
Expand All @@ -30,25 +34,24 @@ children. Second person ("you") is allowed here, as in tutorials.
| # | Chapter | Permalink | Takes in |
|---|---|---|---|
| 1 | A tour of the IDE (landing page) | `/tB/IDE` | `index.md` |
| 2 | Starting a project | `/tB/IDE/Starting` | New Project, Splash Screen, FAQ's first-launch and VBP-import parts |
| 2 | Starting a project | `/tB/IDE/Starting/` + children (**written**) | New Project, Splash Screen, FAQ's first-launch and VBP-import parts |
| 3 | Projects and files | `/tB/IDE/Projects` | Project Explorer (file and object views, Add, context menu; no resource editors: images preview, the rest open as text), references and packages (links to Features/Packages), Export Project (from Menu/File) |
| 3a | Project Settings (reference) | `/tB/IDE/Project-Settings` | `Project Settings.md`, kept whole; **its anchors stay**, as 19 links use them |
| 4 | Writing code | `/tB/IDE/Code` + children | Editor, Find/Replace, Outline, Open Editors, History, Diagnostics, `Features/Compiler-IDE/CodeLens` |
| 5 | Designing forms and reports | `/tB/IDE/Forms`, `/tB/IDE/Reports` | tbForm, Toolbox, Properties, the Format menu's operations, tbReport |
| 6 | Running and debugging | `/tB/IDE/Debugging` + children | Menu/Debug's run-time error walkthrough and Debugger Options, Menu/Run, Debug Console, Variables, Watches, Call Stack, Memory, `Features/Compiler-IDE/Debugging` |
| 7 | Building | `/tB/IDE/Building` | Toolbar's Build configuration, Menu/File's Build and Clean, Package Publishing, links to LLVM and Project-Types |
| 8 | Customising the IDE | `/tB/IDE/Customising/` + children (**written**) | IDE Options (all of them), themes and custom `.theme` files, panel layouts, keyboard shortcuts, language (from Menu/Window and Menu/Tools) |
| 9 | Add-ins | `/tB/IDE/AddIns/` | AddIns/* as they are, Community given content |
| 10 | When something goes wrong | `/tB/IDE/Troubleshooting` | Status Bar's service states, Restart the compiler, TRACE mode, error reporting |
| 9 | Add-ins | `/tB/IDE/AddIns/` | AddIns/* (no community add-in is listed yet) |
| 10 | When something goes wrong | `/tB/IDE/Troubleshooting/` + children (**written**) | Status Bar's service states, Restart the compiler, TRACE mode, error reporting |

**Part B, Reference.** Written impersonally. One page per menu, plus the Toolbar, the Status Bar
and the keyboard shortcuts, under `/tB/IDE/Reference/…`. Each entry gives the item, its
shortcut, one or two sentences, and a link to the chapter that explains it.

- The keymap is shown as a table, not the JSON dump `Menu/Window.md` holds. The table can be
generated from `main.js` if keeping it by hand proves error-prone. Decide that when the page is
written.
- Webpage and the other panes that are not in a chapter get a reference entry.
- The keymap is a table on its own page, `Reference/Keyboard-Shortcuts.md`, generated from
`main.js` by `ide_js.mjs keymap`: never edit its rows by hand.
- Webpage, the one pane that is not in a chapter, has a page of its own here.

**Moving pages.** When a page moves, its old permalink goes into `redirect_from:`, and every
inbound link is changed to the new canonical URL. The 61 inbound links are in
Expand Down Expand Up @@ -134,13 +137,13 @@ for contributors.
- **`shoot_docs.mjs` and WIP.Screenshots.md** hold the states the screenshots already set up,
which are often the quickest way to reach a dialog. A new picture is a new shot there, taken
in both themes; never make a picture by hand.
- The kit `.claude/tooling-review-scratch/ide-docs/ide-driving-survey.md` (gitignored)
- The kit `.claude/scratch/ide-docs/ide-driving-survey.md` (gitignored)
maps the debugger, Settings and Export internals.

## Writing a chapter

1. **Fact sheet.** A Sonnet agent reads `main.js` and the existing pages and writes
`.claude/tooling-review-scratch/ide-docs/<chapter>-facts.md`. Each item in it has its source,
`.claude/scratch/ide-docs/<chapter>-facts.md`. Each item in it has its source,
a command id or a regex, and is marked *read* or *needs trying*.
2. **Trying.** The *needs trying* items are tried in a lane IDE. Use an Opus agent, one at a
time, recording the registry hashes before and after as for any harness run.
Expand Down
Loading
Loading