{
  "schemaVersion": 2,
  "product": "nohmitaina",
  "title": "Public Backlog",
  "updatedAt": "2026-06-10",
  "publicUrl": "https://nohmitaina.com/roadmap.html",
  "summary": "Feature ideas and issue notes from the public-facing nohmitaina backlog.",
  "community": {
    "label": "Join the Discord",
    "href": "https://discord.gg/tn9MHyQYBV",
    "text": "Discuss feature ideas, issue notes, and the direction of nohmitaina with us on Discord."
  },
  "features": [
    {
      "id": "IN-F-001",
      "status": "done",
      "text": "Show the Startup Guide only the first time, while keeping it available from Config."
    },
    {
      "id": "IN-R-001",
      "status": "exploring",
      "text": "Use a local LLM. The first target is macOS on Apple Silicon. Compare runtimes such as MLX, llama.cpp, an Ollama-managed helper, and Hermes; choose curated models based on checksums, memory footprint, context length, and structured-output reliability."
    },
    {
      "id": "IN-O-001",
      "status": "open",
      "text": "Publish the INBOX, small improvements, and bug list, including synchronization to the landing page.",
      "children": [
        {
          "id": "IN-F-002",
          "status": "open",
          "text": "Ideally this becomes a standard editor feature: changes are continuously synchronized and published almost immediately."
        }
      ]
    },
    {
      "id": "IN-F-003",
      "status": "open",
      "text": "Add CLI access to Context and Wiki so agents can inspect concepts through commands such as nols, noput, and nocat."
    },
    {
      "id": "IN-F-004",
      "status": "open",
      "text": "Visualize forgetting with compact signals such as a meter or sparkline."
    },
    {
      "id": "IN-F-005",
      "status": "open",
      "text": "Load another file into the editor text area, keep it synchronized, make the synchronized area visually clear, and save changes back to the original file."
    },
    {
      "id": "IN-F-006",
      "status": "open",
      "text": "Ship a Windows version."
    },
    {
      "id": "IN-F-007",
      "status": "open",
      "text": "Ship a mobile version."
    },
    {
      "id": "IN-T-001",
      "status": "open",
      "text": "Automate testing."
    },
    {
      "id": "IN-F-008",
      "status": "open",
      "text": "Improve wiki restructuring, including import, export, and restructure flows."
    },
    {
      "id": "IN-F-009",
      "status": "open",
      "text": "Add tags, including the ability to mention tags while writing."
    },
    {
      "id": "IN-F-010",
      "status": "open",
      "text": "Improve the experience of creating artifacts with AI, including what to do when using a local LLM."
    },
    {
      "id": "IN-F-011",
      "status": "open",
      "text": "Add a mini search window or side chat for quickly researching selected text while writing."
    },
    {
      "id": "IN-F-012",
      "status": "open",
      "text": "Add watched-media features for personal curation, such as a private news dashboard."
    },
    {
      "id": "IN-F-013",
      "status": "open",
      "text": "Surface frequently used files based on usage over a period of time, not just recently viewed files; optionally open the top N as tabs."
    },
    {
      "id": "IN-F-014",
      "status": "open",
      "text": "Support viewing X."
    },
    {
      "id": "IN-F-015",
      "status": "open",
      "text": "Support viewing PDFs."
    },
    {
      "id": "IN-F-016",
      "status": "open",
      "text": "Pick up forgotten material, such as old web clips, and suggest things that may be worth reading now."
    },
    {
      "id": "IN-F-017",
      "status": "done",
      "text": "Support rectangular selection."
    },
    {
      "id": "IN-F-018",
      "status": "open",
      "text": "Add full-text search."
    },
    {
      "id": "IN-F-019",
      "status": "open",
      "text": "Add a shortcut for opening files immediately."
    },
    {
      "id": "IN-F-020",
      "status": "open",
      "text": "Fill out the editing menu, including common actions such as bullet lists."
    },
    {
      "id": "IN-F-021",
      "status": "open",
      "text": "When evidence comes from a WatchedFile, make that visible, even if only through an icon."
    },
    {
      "id": "IN-F-022",
      "status": "done",
      "text": "Resurface related concepts from the past at the exact moment of writing."
    },
    {
      "id": "IN-F-023",
      "status": "open",
      "text": "Add a Config button to run Dream immediately."
    },
    {
      "id": "IN-F-024",
      "status": "open",
      "text": "Add persona files."
    },
    {
      "id": "IN-F-025",
      "status": "open",
      "text": "Create a persona marketplace."
    },
    {
      "id": "IN-F-026",
      "status": "open",
      "text": "Add tabs."
    },
    {
      "id": "IN-F-027",
      "status": "open",
      "text": "Handle very large watched files more gracefully instead of failing when a file is too large."
    },
    {
      "id": "IN-O-002",
      "status": "open",
      "text": "Write console output from tauri dev to logs, with configurable log levels."
    },
    {
      "id": "IN-F-028",
      "status": "open",
      "text": "Improve context menus and OS menus."
    },
    {
      "id": "IN-F-029",
      "status": "open",
      "text": "Add a command palette that opens from a shortcut and searches available actions as the user types."
    },
    {
      "id": "IN-F-030",
      "status": "open",
      "text": "Add wiki publishing."
    },
    {
      "id": "IN-F-031",
      "status": "open",
      "text": "Allow watched files to be mentioned and browsed."
    },
    {
      "id": "IN-F-032",
      "status": "open",
      "text": "Allow mobile devices to access the desktop nohmitaina workspace remotely, possibly through Tailscale, while preserving a strong mobile editing experience."
    },
    {
      "id": "IN-F-033",
      "status": "open",
      "text": "Embed AI-executable sections inside plain text so other editors still see normal Markdown while nohmitaina can run the AI section."
    },
    {
      "id": "IN-F-034",
      "status": "done",
      "text": "Support more active concept editing, including merging concepts and expressing relationships such as includes."
    },
    {
      "id": "IN-F-035",
      "status": "open",
      "text": "Add AI revision after voice recording."
    },
    {
      "id": "IN-F-036",
      "status": "open",
      "text": "Create a knowledge network where other people's wikis can be referenced, such as @shortname:path."
    },
    {
      "id": "IN-R-002",
      "status": "open",
      "text": "Explore a knowledge network with free and paid concepts, possibly with a token-economy worldview and a public folder convention."
    },
    {
      "id": "IN-F-037",
      "status": "open",
      "text": "Make large-file handling smoother, especially when jumping far ahead in a large document."
    },
    {
      "id": "IN-R-003",
      "status": "open",
      "text": "Create a Hermes agent, including the design of Hermes agent plus a free-LLM configuration."
    },
    {
      "id": "IN-T-002",
      "status": "open",
      "text": "Refactor commands.rs, which may have too many responsibilities; review grouping, revise the code, and retest."
    },
    {
      "id": "IN-O-003",
      "status": "open",
      "text": "Add periodic wiki backups into .system/backups so unintended LLM changes can be rolled back."
    },
    {
      "id": "IN-O-004",
      "status": "open",
      "text": "Automatically commit and push the nohmitaina workspace as a Git repository to support history, remote backup, and multi-device sync."
    },
    {
      "id": "IN-Q-001",
      "status": "open",
      "text": "Consider whether each document should have tags."
    },
    {
      "id": "IN-R-004",
      "status": "open",
      "text": "Implement LLM approach C."
    },
    {
      "id": "IN-F-038",
      "status": "open",
      "text": "Explore a plugin system that lets anyone develop and add features."
    },
    {
      "id": "IN-F-039",
      "status": "open",
      "text": "Add a recommendation engine that suggests pages related to each concept."
    },
    {
      "id": "IN-Q-002",
      "status": "open",
      "text": "Consider whether to support Marp."
    },
    {
      "id": "IN-Q-003",
      "status": "done",
      "text": "Consider whether to support Mermaid."
    },
    {
      "id": "IN-Q-004",
      "status": "done",
      "text": "Consider whether to support browsing, such as asking a conversation session to browse the web."
    },
    {
      "id": "IN-F-040",
      "status": "open",
      "text": "Add a dashboard that uses local information to suggest useful information, triggered on startup, after Dream, or under other conditions."
    },
    {
      "id": "IN-F-041",
      "status": "done",
      "text": "Explore multi-workspace support similar to Obsidian vault switching."
    }
  ],
  "issueSections": [
    {
      "screen": "Edit",
      "items": [
        {
          "id": "BUG-EDIT-001",
          "status": "done",
          "text": "Move the tab icons into the titlebar area where nohmitaina is currently displayed."
        },
        {
          "id": "BUG-EDIT-002",
          "status": "done",
          "text": "Show editor content in tabs, with the tabs appearing in the same titlebar row."
        },
        {
          "id": "BUG-EDIT-003",
          "status": "open",
          "text": "Deleting many files takes too long. Delete files first, then run DB cleanup in the background."
        },
        {
          "id": "BUG-EDIT-004",
          "status": "open",
          "text": "Improve the right-click context menu, using tools such as Obsidian as references."
        },
        {
          "id": "BUG-EDIT-005",
          "status": "done",
          "text": "When an H1 title is added to an Untitled note, use it as the title while still allowing filename and title to be managed separately."
        },
        {
          "id": "BUG-EDIT-006",
          "status": "done",
          "text": "When text is selected, typing quotes or brackets should wrap the selection."
        },
        {
          "id": "BUG-EDIT-007",
          "status": "open",
          "text": "Show release notes."
        },
        {
          "id": "BUG-EDIT-008",
          "status": "open",
          "text": "When moving something in the file browser, the app becomes busy; make it clear what is running."
        },
        {
          "id": "BUG-EDIT-009",
          "status": "open",
          "text": "For SLM or Bonsai-8B support, a Hermes agent plus user-selected LLM may be the cleaner direction."
        },
        {
          "id": "BUG-EDIT-010",
          "status": "open",
          "text": "If voice recording inserts text before a Mermaid diagram, line breaks are removed repeatedly and the display breaks."
        },
        {
          "id": "BUG-EDIT-011",
          "status": "open",
          "text": "Large Mermaid diagrams render too small and can only be zoomed to 150%; default them to the available width."
        },
        {
          "id": "BUG-EDIT-012",
          "status": "done",
          "text": "When creating a Morning Page note, use the H1 title as the filename, without later filename edits changing the title."
        },
        {
          "id": "BUG-EDIT-013",
          "status": "open",
          "text": "Add Markdown preview."
        },
        {
          "id": "BUG-EDIT-014",
          "status": "done",
          "text": "Text before an hr line becomes styled like a heading even though it should remain normal text."
        },
        {
          "id": "BUG-EDIT-015",
          "status": "done",
          "text": "Support rectangular selection."
        },
        {
          "id": "BUG-EDIT-016",
          "status": "done",
          "text": "When deleting a rectangular selection across an empty line, preserve the empty line instead of removing the newline."
        },
        {
          "id": "BUG-EDIT-017",
          "status": "done",
          "text": "Record and replay keyboard macros."
        },
        {
          "id": "BUG-EDIT-018",
          "status": "done",
          "text": "Add menu items for bullet lists, numbered lists, and task lists."
        },
        {
          "id": "BUG-EDIT-019",
          "status": "done",
          "text": "The Policy area has too much content."
        },
        {
          "id": "BUG-EDIT-020",
          "status": "done",
          "text": "Move the count to the far right of the footer."
        },
        {
          "id": "BUG-EDIT-021",
          "status": "done",
          "text": "Move Saved status to the footer."
        },
        {
          "id": "BUG-EDIT-022",
          "status": "done",
          "text": "Remember the last wrap setting."
        },
        {
          "id": "BUG-EDIT-023",
          "status": "done",
          "text": "Selection colors, including IME conversion colors, are hard to see."
        },
        {
          "id": "BUG-EDIT-024",
          "status": "done",
          "text": "Undo should probably work independently per tab."
        },
        {
          "id": "BUG-EDIT-025",
          "status": "done",
          "text": "Remember cursor position for tabs during the same app session."
        },
        {
          "id": "BUG-EDIT-026",
          "status": "done",
          "text": "Allow an empty Untitled tab to be closed when another file is open."
        },
        {
          "id": "BUG-EDIT-027",
          "status": "done",
          "text": "Tab navigation shortcuts are not working."
        },
        {
          "id": "BUG-EDIT-028",
          "status": "done",
          "text": "Markdown heading markers such as # remain visible unexpectedly."
        },
        {
          "id": "BUG-EDIT-029",
          "status": "done",
          "text": "Find within a file is very slow."
        },
        {
          "id": "BUG-EDIT-030",
          "status": "done",
          "text": "Deleting an open file from the file browser creates confusing Untitled tabs and breaks tab shortcuts."
        },
        {
          "id": "BUG-EDIT-031",
          "status": "done",
          "text": "Returning from Config indents the current editor line and marks the tab unsaved."
        },
        {
          "id": "BUG-EDIT-032",
          "status": "open",
          "text": "There is no Open menu; opening a new workspace may also need to be a menu item."
        },
        {
          "id": "BUG-EDIT-033",
          "status": "open",
          "text": "Typing under a collapsed H1/H2 section inserts text at the hidden cursor location instead of where the user expects."
        },
        {
          "id": "BUG-EDIT-034",
          "status": "done",
          "text": "New Folder is missing from the right-click menu."
        },
        {
          "id": "BUG-EDIT-035",
          "status": "done",
          "text": "Internal links should show candidates and be available from the toolbar and right-click menu."
        },
        {
          "id": "BUG-EDIT-036",
          "status": "done",
          "text": "Pressing Enter on an indented line should keep the indentation."
        },
        {
          "id": "BUG-EDIT-037",
          "status": "open",
          "text": "Right-click menus do not appear on notes."
        },
        {
          "id": "BUG-EDIT-038",
          "status": "open",
          "text": "Consider whether there should be a setting to show or hide that menu."
        },
        {
          "id": "BUG-EDIT-039",
          "status": "done",
          "text": "Organize tab behavior by sampling many tab scenarios and cleaning up the code where needed."
        },
        {
          "id": "BUG-EDIT-040",
          "status": "done",
          "text": "Tab order can become inconsistent with the UI; Cmd+Shift+[ does not move from tab B to tab A."
        },
        {
          "id": "BUG-EDIT-041",
          "status": "done",
          "text": "Opening a third file can replace or lose the wrong tab, so tab behavior needs more systematic testing."
        },
        {
          "id": "BUG-EDIT-042",
          "status": "open",
          "text": "When tab B opens a file already open in tab A, keep the action in tab B so each tab can have independent history."
        },
        {
          "id": "BUG-EDIT-043",
          "status": "open",
          "text": "Decide whether parts of markdown-sample.md should be implemented."
        },
        {
          "id": "BUG-EDIT-044",
          "status": "open",
          "text": "Add a menu item to copy a file path."
        },
        {
          "id": "BUG-EDIT-045",
          "status": "done",
          "text": "Remember expanded and collapsed folder state in the file browser across app restarts."
        },
        {
          "id": "BUG-EDIT-046",
          "status": "done",
          "text": "Opening or closing the notes tree creates a subtle layout shift in the editor file tree."
        },
        {
          "id": "BUG-EDIT-047",
          "status": "open",
          "text": "Right-clicking inside a table can show Recall here over the table operation menu; the menu style should be reconsidered."
        },
        {
          "id": "BUG-EDIT-048",
          "status": "open",
          "text": "Change the workspace tree structure so SCHEMA.md, config.yaml, and wiki live under nohmitaina/, and existing folders can be recognized as workspaces."
        },
        {
          "id": "BUG-EDIT-049",
          "status": "open",
          "text": "When a long wrapped-off line is at the end and Enter is pressed, the viewport does not move to the new cursor position until another key is pressed."
        },
        {
          "id": "BUG-EDIT-050",
          "status": "open",
          "text": "Opening an existing folder should recognize it as a workspace and automatically detect existing Markdown files."
        },
        {
          "id": "BUG-EDIT-051",
          "status": "open",
          "text": "Startup logging is weak; when migration or startup fails, users need logs they can inspect."
        },
        {
          "id": "BUG-EDIT-052",
          "status": "open",
          "text": "When DB migration fails, a workspace-switching screen may be needed."
        },
        {
          "id": "BUG-EDIT-053",
          "status": "open",
          "text": "The notes tree can reopen by itself after being closed for a while."
        }
      ]
    },
    {
      "screen": "Save URL",
      "items": [
        {
          "id": "BUG-SAVE-001",
          "status": "open",
          "text": "Show UI that makes it clear processing is in progress."
        },
        {
          "id": "BUG-SAVE-002",
          "status": "open",
          "text": "Allow tags to be added when fetching."
        },
        {
          "id": "BUG-SAVE-003",
          "status": "open",
          "text": "Store the fetched date somewhere."
        },
        {
          "id": "BUG-SAVE-004",
          "status": "done",
          "text": "Allow choosing whether to summarize or save the body as-is, and remember the last setting."
        },
        {
          "id": "BUG-SAVE-005",
          "status": "open",
          "text": "Allow a default Save URL destination directory to be configured."
        },
        {
          "id": "BUG-SAVE-006",
          "status": "done",
          "text": "Use the last selected file-browser folder as the save destination and display it clearly."
        },
        {
          "id": "BUG-SAVE-007",
          "status": "open",
          "text": "Add a destination path input box, similar to the import-file UI, with a configurable default."
        },
        {
          "id": "BUG-SAVE-008",
          "status": "open",
          "text": "Decide what the mobile flow should be, given the Claude Code and Codex CLI assumptions."
        },
        {
          "id": "BUG-SAVE-009",
          "status": "open",
          "text": "Process PDFs too, converting them to Markdown; this may also apply to WatchedFile."
        },
        {
          "id": "BUG-SAVE-010",
          "status": "open",
          "text": "Support saving a page as-is."
        },
        {
          "id": "BUG-SAVE-011",
          "status": "done",
          "text": "Support reading X."
        },
        {
          "id": "BUG-SAVE-012",
          "status": "open",
          "text": "Fetched and saved pages can fail to save with validation.request.invalid."
        }
      ]
    },
    {
      "screen": "Watched File",
      "items": [
        {
          "id": "BUG-WATCH-001",
          "status": "open",
          "text": "Large files should be imported in chunks."
        }
      ]
    },
    {
      "screen": "Wiki",
      "items": [
        {
          "id": "BUG-WIKI-001",
          "status": "open",
          "text": "Improve the right-click menu, using tools such as Obsidian as references."
        },
        {
          "id": "BUG-WIKI-002",
          "status": "done",
          "text": "History timestamps are too long and do not respect timezone; use the system locale."
        },
        {
          "id": "BUG-WIKI-003",
          "status": "done",
          "text": "Revision Request cannot mention concepts."
        },
        {
          "id": "BUG-WIKI-004",
          "status": "done",
          "text": "Revision Request cannot refer back to the original note text when it needs to."
        },
        {
          "id": "BUG-WIKI-005",
          "status": "done",
          "text": "Show a wiki concept ID in the UI so it can be used from Dialogue and search/autocomplete."
        },
        {
          "id": "BUG-WIKI-006",
          "status": "open",
          "text": "During Revision Request, periodically check status and auto-refresh when the user has a request in progress."
        },
        {
          "id": "BUG-WIKI-007",
          "status": "open",
          "text": "DuplicateCandidates may not be meaningful enough as a standalone UI; reconsider the feature."
        },
        {
          "id": "BUG-WIKI-008",
          "status": "open",
          "text": "Make wiki H2 sections collapsible, with evidence and history collapsed by default."
        }
      ]
    },
    {
      "screen": "Recording",
      "items": [
        {
          "id": "BUG-REC-001",
          "status": "open",
          "text": "Explore other TTS models."
        },
        {
          "id": "BUG-REC-002",
          "status": "open",
          "text": "Add a button to revise transcribed voice notes with AI, keeping ambiguous text explicit."
        },
        {
          "id": "BUG-REC-003",
          "status": "done",
          "text": "Show a footer indicator while the TTS model is downloading."
        },
        {
          "id": "BUG-REC-004",
          "status": "done",
          "text": "Automatically look for local model paths in the default location."
        },
        {
          "id": "BUG-REC-005",
          "status": "done",
          "text": "Replace the current indicator with a simple horizontal indicator that changes width with audio intensity."
        },
        {
          "id": "BUG-REC-006",
          "status": "done",
          "text": "Show TTS model availability in the footer."
        }
      ]
    },
    {
      "screen": "Chat",
      "items": [
        {
          "id": "BUG-CHAT-001",
          "status": "open",
          "text": "After navigating from Chat to Config, Cmd+[ should return to Chat."
        }
      ]
    },
    {
      "screen": "Config",
      "items": [
        {
          "id": "BUG-CONF-001",
          "status": "open",
          "text": "Notify about updates periodically, such as once a week."
        },
        {
          "id": "BUG-CONF-002",
          "status": "open",
          "text": "Review whether LLM selection should always be present in scenario EN001-002."
        }
      ]
    },
    {
      "screen": "Dream",
      "items": [
        {
          "id": "BUG-DREAM-001",
          "status": "open",
          "text": "When thin concept, example fold, or parent suggestion is only recorded as a diagnostic result, decide what action should follow."
        },
        {
          "id": "BUG-DREAM-002",
          "status": "open",
          "text": "Make the knowledge-maintenance log visible somewhere instead of requiring users to open the JSONL file directly."
        }
      ]
    }
  ]
}
