Big visions and user stories. Too complex or vague for tasks, but important for direction.
+
+
+
+
+
+
MVP
+
+
+ Local Git Repository Integration
+
+ Git integration inside the editor: file status indicators in the tree, staging,
+ commit, push, pull, diffs, and history. Depends on local filesystem access.
+ Once Roject can open an arbitrary local directory, the git repo is already there.
+ Implementation via simple-git (thin Node.js wrapper around the git CLI).
+
+
+
+
+
+
+
Nice To Have
+
+
+ Internet Tunnel / Port Relay
+
+ Allow local devices — a Stable Diffusion instance, a local LLM, a GDScript language
+ server — to be accessible to authorised Roject users over the internet, routed through
+ the Roject server via a persistent WebSocket. Primary use case: phone as a thin client
+ while the main machine handles all heavy processing.
+
+
+
+
+ Real-Time Multi-User Collaboration
+
+ Multiple users editing the same file simultaneously with presence indicators
+ and conflict resolution. Likely via operational transforms or CRDTs.
+ Significant architecture work; not planned for the near term.
+
+
+
+
+
+
+
To The Moon
+
+
+ Mobile App (PWA first, native shell later)
+
+ Make Roject usable on a phone or tablet. Quickest path: PWA with a manifest
+ and service worker — works in Safari and Chrome on Android and iOS without an
+ app store. If native capabilities are later needed, Capacitor can wrap the same
+ web app. A React Native or Flutter rewrite is not planned.
+ The realistic mobile workflow is browsing files, reading output, and light edits
+ rather than heavy coding.
+
+
+
+
Click a task title to expand or collapse its content.
+
+
+
+
+
+
Critical
+
+
+ Projects Lookup/Editing Broken
+
+ The projects a user can view should only be the ones the user created
+ or is a member of. Currently a second account can open and edit the content
+ of a project belonging to the first account.
+
+
+
+
+ 401 Not Handled in Data-Fetching Components
+
+ Components that fetch data (groups, projects, etc.) do not handle 401 responses
+ gracefully — they crash when the API returns an error object instead of an array.
+ Should show an appropriate message or redirect to login.
+
+
+
+
+
+
+
Visual / UI / UX
+
+
+ Code Editor Needs Click to Show Content
+
+ The code editor's content is not rendered immediately — it needs a click to show up.
+ This happens when selecting a fresh new tab or when a file is selected.
+
+
+
+
+ Right Panel Has No Default Content
+
+ The Right panel is empty by default and relies on manual tab dragging to populate.
+ Should show a placeholder or hint explaining what to do.
+
+
+
+
+ Portrait Mode Section Switcher Not Wired
+
+ The secondary section switcher in portrait mode (when a panel has multiple
+ side-by-side sections) is not yet functional.
+
+
+
+
+ Member List Shows Raw UUIDs
+
+ The member list UI displays raw UUIDs instead of usernames.
+ Should resolve user IDs to display names via the auth service.
+
+
+
+
+ Current development sprint. Active work items with To Do, In Progress, and Done lanes.
+ We try to keep this focused — only things being worked on now or very soon.
+
+ Known issues we want to fix later. Organized by severity: Critical for things that
+ break correctness or security, Visual/UI/UX for things that look or feel wrong.
+
+ Big user stories and visions. Too complex or vague to be tasks, but important for
+ understanding the direction. Lanes: MVP for the core product vision,
+ Nice To Have for quality-of-life additions, To The Moon for longer-horizon ambitions.
+
Click a task title to expand or collapse its content.
+
+
+
+
+
+
To Do
+
+
+ Remote Projects in Electron
+
+ Allow the Electron app to connect to roject.rokojori.com and list remote projects
+ alongside local ones. The JWT is already available;
+ it's a matter of pointing requests at the remote URL with the token.
+
+
+
+
+ Unauthenticated Landing Screen
+
+ Unauthenticated users currently crash on dashboard components.
+ They should land on a screen that explains the app and shows a login link.
+
+
+
+
+ Replace browser confirm() in group editor and account delete
+
+ The group editor and account delete button still use the browser confirm() dialog.
+ Replace with the custom <confirm-dialog> component already used elsewhere.
+
+
+
+
+ MediaViewerPanel for images and PDFs
+
+ Non-text files (images, PDFs) are visible in the file tree but not openable.
+ Add a MediaViewerPanel and register it in FileEditorRegistry for common media types.
+
+
+
+
+ CI deploy email notification
+
+ The /api/deploy endpoint should send an email notification after each successful
+ restart so deploys are visible without checking server logs.
+
+
+
+
+ Switch Gitea webhook to dev branch
+
+ The Gitea webhook currently triggers on pushes to main, redeploying on every commit.
+ Switch to a dev branch so main is the stable release target.
+
+
+
+
+
+
+
In Progress
+
+
+ Local Filesystem Access
+
+ Extend the file tree to browse arbitrary directories on the host
+ machine using Node.js fs rather than the server's JSON-backed project storage.
+
+
+
+
+
+
+
Done
+
+
+ Electron Desktop App Shell
+
+ Login window, JWT auth via API, Authorization header injection, token persistence,
+ ROJECT_ROOT path fix, ELECTRON_RUN_AS_NODE workaround. Full local-only Electron app working.
+
+
+
+
+ A new Boards section added to the workspace with three boards:
+ Tasks (current sprint, To Do / In Progress / Done),
+ Bugs (Critical and Visual/UI/UX lanes),
+ Backlog (MVP / Nice To Have / To The Moon).
+ Each board uses custom HTML elements — <task-item>,
+ <task-title>, <task-content> — styled
+ to match the workspace visual language (CSS variables, same spacing rhythm,
+ lane headers matching section h2). Clicking a title toggles
+ the content open/closed via hide-content class.
+ Shared styles extracted to workspace/_assets_/boards.css.
+
+
+ workspace/boards/
+ task-item
+ boards.css
+
+
+
+
+
Outline shortened
+
+ workspace/outline/index.html was rewritten to remove the long
+ numbered to-do list and the "Smaller open improvements" bullet list.
+ Those items were distributed across the three boards.
+ The outline now covers only: what Roject is, what exists now (condensed into
+ named cards), a one-card pointer to the boards, and the technical implementation
+ reference. About half the original length.
+
+
+
+
+
Workspace index improved
+
+ workspace/index.html gained a Boards card and a
+ "Quick orientation" section with separate guidance for humans and agents:
+ read Outline → Guides → Reference before making changes; check Boards and
+ the most recent History entry for current context.
+
+
+
+
What's next
- Local filesystem access — extend the file tree to browse arbitrary directories
- on the host machine using Node.js fs rather than the server's
- JSON-backed project storage.
-
-
- Remote projects in Electron — allow the Electron app to connect to a remote
- Roject server (roject.rokojori.com) and list projects hosted
- there alongside local ones. The JWT is already available; it's a matter of
- pointing a request (or a BrowserView panel) at the remote URL with the token.
+ See Tasks board for the current sprint.
+ Local filesystem access and remote projects in Electron are the two active items.
- Explains Roject's goals, features and future plans for the project.
+ What Roject is, what exists now, and the technical implementation.
+ Start here for the big picture.
+ Read the outline
+
+ Current state at a glance: active tasks, known bugs, and longer-horizon backlog.
+ Check here to know what is being worked on right now.
+
+ Open the boards
- Per-day history that gives insights about the daily work.
+ Per-day session log. Good for understanding what changed and why.
-
- Read more about the history
+ Read the history
- To get the full picture, follow each page (as human or agent).
-
-
+
+
Quick orientation
+
+
+
+ New here? Read Outline for the big picture, then Guides for how things are done.
+ Check Boards for what is active right now.
+
+
+ Agents: read Outline → Guides → Reference before making changes.
+ Check Boards and the most recent History entry to understand the current context.
+ Follow all coding conventions in the Guides — do not infer style from existing code alone.
+
+
+
Web Components
@@ -406,10 +187,9 @@
A personal TypeScript library lives as a git submodule at
source/library-ts/. It has two parts: browser/
(DOM-capable) and node/ (Node.js only). The browser part is
- compiled separately via TypeScript project references
- (source/library-ts/browser/tsconfig.roject.json, strict: false)
- into build/app/library-ts/browser/. The node part is included by
- tsconfig.ts-node.json (extends server config, strictNullChecks: false).
+ compiled separately via TypeScript project references into
+ build/app/library-ts/browser/. The node part is included by
+ tsconfig.ts-node.json.