Skip to content

Index: open questions from the recent fix series, and where things stand #396

Description

@PathGao

@alecdotdev — I've been working through a backlog of defects over the last stretch and there are now a handful of decisions that are yours rather than mine. Rather than pinging you on each one, here is a single index. Nothing here is urgent and nothing needs a long reply — a one-line "yes/no/not now" on any of them is enough, and I'm happy to implement whichever way you point.

Decisions I'd like your call on

Question
#390 ⌘Q discards the session snapshot while the red X keeps it, and quit only closes the focused window. Both live in appExit(), so they're one decision. My reading is that the discard is deliberate — the confirm dialog literally promises it — but that dialog only appears when a tab is dirty, so most people never see the sentence that explains the design.
#391 Undo history is destroyed on every tab switch, because one Monaco model is shared by all tabs and setValue clears the undo stack by definition. Fix is one model per tab (Monaco's intended usage), but it changes observable behaviour and adds model lifetime management.
#392 Ctrl+T means three different things across platforms, and the Home tab it opens on Windows/Linux renders blank.
#393 Monaco's defaults were never audited — that's why fullwidth CJK punctuation gets outlined (#186, #94) and why Vim's whole z family is dead (#104). Offering to bring a list before touching anything.
#394 img-src https: means opening an untrusted .md can silently contact a third party; assetProtocol.scope: ["**"] exposes the filesystem. Both look like deliberate trade-offs — I'd like to know if they are, so they can be recorded as such.
#395 The portable and installer .exe are the same binary distinguished by filename, and re-running the installer after installing silently opens the app instead of offering Repair/Uninstall.
#368 Undo deletes pasted/dropped images permanently, and sometimes the wrong one. Three separate defects; I closed my own PR for it because the prior question is whether that deletion should exist at all. Obsidian and Typora keep the file and make orphan cleanup an explicit command.
#372 Non-UTF-8 documents. #379 has landed the stop-loss (they open, but saving over the original is refused), so nothing is destroyed now. The open question is whether you want real encoding detection, which means a new dependency.
#373 Saving a read-only file: hard error, or a "this file is read-only, overwrite?" prompt like VS Code. #371 made all three platforms fail consistently, which removed a capability Unix users had.
#385 Three stale statements in AGENTS.md — most importantly that the frontend has no test framework, when there are 67 test files and CI runs them. Happy to PR it if you'd rather not.

Where the code stands

Roughly 60 commits are on master but unreleased. Several of those fix things people reported (checkbox toggling, preview width, Ctrl+O, PDF layout), so a release would let reporters confirm on their own machines rather than taking my word for it.

I've deliberately not closed any issue, even where the fix looks complete — I'd rather the reporter confirms against a build than have me close it from reading the code. I'll comment on the relevant ones with what changed and which PR did it.

Two more things worth flagging, neither needing a decision:

Thanks for merging the recent series — happy to keep going, slow down, or drop anything you'd rather not carry.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions