Repository navigation
Number new untitled tabs - #203
Merged
Merged
Conversation
tebriz91
marked this pull request as ready for review
October 28, 2026 02:41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New tabs use
Untitled.md, then the lowest freeUntitled N.mdacross current and lazy restored tabs. Closing a tab frees its name; saving under a different name also frees the old untitled name while the tab stays open. Empty unsaved tabs retain their names across restarts. Save As, close/quit prompts, the sidebar and its accessibility labels receive the document name, and the command palette shares the sidebar title lookup.The tab owner reserves retained titles before naming older unnamed session records. Failed or loading Markdown files retain their filenames rather than reserving an untitled number. Removes 0.3.0 item 1 from ROADMAP.md and adds changes/tab-numbering.md.
Validation:
just checkpassed after the review fixes: fmt-check, deny, lint-scripts, lint and test. Cargo: 806 passed, 0 failed, 20 ignored, including isolated headless rendering; all 14 release-script cases passed.git diff --checkalso passed.Review
Reviewed by claudeAgent / claude-haiku-5-5, effort max, against origin/main and ADR 0071. No Critical or High findings; one Medium and three Low findings, addressed as follows:
Optional review notes: the legacy test now deserializes an actual JSON record without
name. Allocation compares displayed names exactly, as specified; it does not define filesystem path uniqueness. DocumentSession keeps its existing public-field API, while TabSet owns private tab records and their naming transition. For initialized tabs the live document name is authoritative; snapshots refresh the retained blank name from it.