Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@ All panes use standard AppKit split-view behavior, system materials, native focu

- A new or comment-free document begins with the source alone. The comment inspector opens automatically only when a document already contains review threads or the user starts a comment.
- Standalone files hide the navigator; directory workspaces reveal it. Closing either sidebar gives its space to the document without changing the outer window frame.
- The initial window uses a generous 1180 × 780 working size when the screen permits. Later launches restore only a usable, on-screen frame, and the document pane remains the elastic region during live resize and full screen.
- Opening several files—through the Open panel, Finder, or the CLI—places them in native tabs. An empty tab is reused, duplicate paths focus their existing tab, and separate windows remain available with `⌘N`.
- The initial window uses a generous 1180 × 780 working size when the screen permits. Later launches restore each window to its prior physical display when available, with a usable on-screen fallback when a display is disconnected; the document pane remains the elastic region during live resize and full screen.
- Opening several files—through the Open panel, Finder, or the CLI—places them in native tabs. An empty start tab is reused, duplicate paths focus their existing tab, and separate windows remain available.
- `⌘T` creates an editable, automatically saved untitled Markdown scratchpad in the current tab group. `⌘N` creates one in a separate window, and `⌘⇧S` promotes it to an ordinary named Markdown file without changing its tab position.
- Tabs follow browser conventions: `⌘T`, `⌘W`, `⌃Tab`, `⌃⇧Tab`, and `⌘1`…`⌘9`. Pane focus uses `⌃1`…`⌃3` so it never competes with tab selection.
- Reader presentation and file-provider change watching begin only after they are requested, away from the main interaction path. Stale reader work is discarded when the user switches files or modes.
- A normal relaunch restores tabs and lightweight view state, but an explicit CLI target always wins. Persistence is deferred to a utility queue and never joins the first-window path.
- A normal relaunch restores independent windows, their physical displays, native tab groups and order, the selected window and tab, usable window frames, scratchpad contents, and lightweight editor state. An explicit CLI target always wins. Session persistence is deferred to a utility queue, and scratchpads remain ordinary private Markdown files rather than database records.
- New comments or replies arriving from another process never steal focus or open the inspector. They add a restrained numeric tab/toolbar signal and a temporary **New** filter until the affected thread is deliberately visited.

## Typography and color
Expand Down
16 changes: 12 additions & 4 deletions Docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,18 @@ directory indexing, filesystem watching, comparison loading, collaboration
overviews, and stage presentation are created only when requested so they do
not join the initial window path.

The application stores only lightweight local presentation state such as open
tabs, pane visibility, selection, scroll position, and the active thread. An
explicit file or directory supplied by the user takes precedence over session
restoration.
The application stores only lightweight local presentation state such as the
independent-window and native-tab hierarchy, pane visibility, selection, scroll
position, display affinity, and the active thread. Stable native restoration
identifiers let AppKit preserve system-managed window state; custom placement
metadata provides physical-display continuity and an on-screen fallback when a
display is unavailable. Untitled scratchpads are ordinary Markdown
files below the user's private Application Support directory; the session holds
only their stable identity and presentation state. Scratch contents use the
same atomic autosave path as named documents, are flushed synchronously during
a normal quit, and move to the selected destination only after Save As
succeeds. An explicit file or directory supplied by the user takes precedence
over session restoration.

## CLI contract

Expand Down
13 changes: 12 additions & 1 deletion Docs/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,18 @@

## Unreleased

No changes yet.
- Added durable untitled Markdown scratchpads. `⌘T` creates one in the current
tab group, `⌘N` creates one in a separate window, and `⌘⇧S` promotes it to a
named file. Scratch contents are private file-backed Markdown, autosave while
editing, flush synchronously on quit, and require an explicit Save As or
discard decision before a nonempty scratchpad tab closes.
- Expanded session restoration from one flattened tab list to the complete
independent-window and native-tab hierarchy, including tab order, selected
tabs, usable window frames, cursor and scroll continuity, and open
scratchpads. Existing version-1 sessions migrate to a single restored window.
- Integrated the durable session with native AppKit window restoration.
Physical-display identity and relative placement are retained, with an
on-screen fallback when a monitor is disconnected or its layout changes.

## 0.5.1 — native reading and review fixes

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ Open a file for quick editing or a directory for a native, lazily loaded navigat

In the app you can:

- create an automatically saved untitled Markdown scratchpad with `⌘T`, or a scratchpad in a separate window with `⌘N`, then promote it to an ordinary file with `⌘⇧S`;
- return after a normal quit to the same independent windows and displays, tab groups, selected tabs, cursor positions, and scroll positions;
- edit literal Markdown with restrained syntax cues, delimiter pairing, list continuation, native undo, find, spellcheck, and accessibility support;
- switch to a bounded, typography-first reader view with `⌘⇧R`;
- select a passage and comment from the inline affordance, context menu, or `⌘⌥M`;
Expand Down
2 changes: 2 additions & 0 deletions Resources/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<string>Copyright © 2026 OpenProse, Inc.</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSQuitAlwaysKeepsWindows</key>
<true/>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
Expand Down
Loading