Wayfinding — the breadcrumb trail and back/forward arrows
The desktop titlebar carries a location trail plus browser-style back and forward arrows, so you can always see which group the current screen belongs to and how to get back to where you were. Covers where the control lives, how a location is worked out, how to remove it, what the arrows remember, and which panels deliberately publish or skip a third crumb.
What it is
The desktop titlebar's left cluster, immediately after the OMNISCIO wordmark, carries two square arrow buttons and a location trail. Together they answer the two questions the desktop app could not answer before: where am I, and how do I get back.
- The trail reads
Productivity › The Vault, or deeper:Developer Tools › Dev Pipeline › Auto-lander. Every crumb except the last is a real link — clickingProductivityopens that group's landing page, clickingDev Pipelinereturns you to that panel's first tab. The last crumb is the page you are already on, so it is plain text and carriesaria-current="page". - The arrows are browser-style back and forward, bound to
Ctrl+[andCtrl+]. Whenever the control is shown they are always visible, greyed out when there is nowhere to go, the way a browser's are. On macOS the same binding renders asCmd+[/Cmd+], which is the native Mac browser shortcut, so no platform-specific code is needed.
Both chords are declared in the keybindings registry rather than hardcoded, so you can rebind them in Settings and they appear in the ? shortcuts overlay automatically.
This is a desktop-only surface. The mobile UI has its own MobileBreadcrumb and its own back stack; the two never stack on top of each other.
Where to find it
It is not a page you open — it is a control drawn in the desktop titlebar's left cluster, immediately after the OMNISCIO wordmark, so it is always on screen. Its on/off is the titlebar widget list: right-click the title bar and toggle Location Trail, or open Settings → Widgets.
How it behaves
Turning it off
It is a header widget, so you add or remove it exactly like the others: right-click the title bar and toggle Location Trail, or use Settings → Widgets. Both surfaces read the same list, so they can never disagree. It is shown out of the box.
Two things worth knowing:
- Removing it hides both the trail and the arrows — the whole control, not half of it.
Ctrl+[andCtrl+]keep working while it is removed. Hiding the chrome is not the same as unbinding the keys, and the shortcuts already have their own home in Settings → Keyboard if you want them gone too.
There is deliberately no separate on/off setting for it. The widget list is the one control; a second switch would be two places to change the same thing.
Why the app needed it
Omniscio's desktop shell is an Electron window, not a browser tab. There is no router in it — of the 145 files that import react-router, none is in the desktop shell — so there has never been anything for a browser Back to act on. Before this, the only way back from a screen was to find your way in the sidebar, and nothing on screen told you which group the current screen belonged to.
Worth knowing if you are reading old audit output: three product-polish audit runs (March 2026) recorded desktop navigation as passing on the stated premise that "browser back works". It never has. A fourth run recorded the correct answer — Browser back: Not applicable (Electron app) — so the audits contradicted each other, and the incorrect pass is the one that stuck.
How "where am I" is worked out
This is the part that surprises people, and it is worth understanding if the trail ever shows something you did not expect.
A location in Omniscio is two things, not one. There are only 17 top-level views, and 14 of them are full-screen surfaces you rarely open. Almost everything you actually use — The Vault, Time Tracker, Team Chat, Dev Pipeline — is a virtual project opened inside the dashboard. So the app's real location is the view plus the active project, and, when a panel opts in, one or more levels below that.
That is why the trail has up to three parts:
| Where you are | Trail |
|---|---|
| A full-screen view | Mind Map |
| A hub inside the dashboard | Productivity › The Vault |
| A tab inside that hub | Developer Tools › Dev Pipeline › Auto-lander |
| A plain folder project | Projects › <your project name> |
| The dashboard with nothing open | arrows only, no trail |
The depth is not capped at three. A panel that nests further can publish more levels and the trail grows to match.
The group and panel names come from the same integration manifests the sidebar reads, so a crumb can never disagree with the sidebar row it corresponds to.
Third-level crumbs are opt-in, per panel
A panel's open tab lives in that component's own state, which the titlebar cannot see. So a panel publishes its position with one line, and the shell joins it on.
22 panels currently publish a third crumb: Agent Messages, AI Coaching, API Keys, Bug Intake, ContextDock, Dev Pipeline, File Converter, Google Meet, Habits, Hooks, Marketplace, Meetings, Night Shift, Notification History, Overseers, Screen Capture, Settings, Statistics, Teams, Test Regime Monitor, Time Tracker, Voiceprint Studio.
Some panels deliberately do not, and this is a design decision rather than an omission. A strip that toggles which list the sidebar shows — KMS's Files | Sessions, Tasks, Supermail, Flowchart, Workflows — is not a location, and naming it in the trail would tell you something confidently wrong. So would a meeting filter (Zoom), a mobile-only board switch (Jira, Linear), or tabs that live inside a dialog. A short trail is better than a wrong one.
Settings publishes its section, not its tab. Its one tab strip is shared by 13 hub pages and knows only the inner tab, so publishing that would read Settings › General without saying which hub. The section is published instead, so the trail reads System › Settings › Appearance and names the page you are actually on. The label comes from the same list the settings nav renders, so a page's crumb and its nav row cannot drift apart.
Settings did not ship with the original feature. When the breadcrumb first landed (77fb828edb8, 3 Sep 2026), Settings was the one panel deliberately left out — the trail read System › Settings on every one of its 13 pages and never named the page you were on. It was recorded as a known gap rather than skipped quietly, with the fix written into the reason: publish the section first. A later branch did exactly that, and deleted the exclusion in the same commit. The inner tab is still open — 13 one-line edits, one per hub — and is now the only part left.
One known gap remains, recorded rather than quietly skipped:
- Marketplace Review's tabs describe the submission you have selected, so a crumb would name the facet without naming the submission.
A guard test enforces this: any panel with a detectable tab strip must either publish it or appear in a list with a written reason. A new panel fails the build until its author picks one, so the coverage cannot silently rot.
What the arrows remember
Back and forward behave like a browser, not like "go up a level". From The Vault, Back returns to wherever you actually were before — the Daily Digest, the Inbox, whatever it was — not up to Productivity.
Three things deliberately do not enter the history:
- The app tour revealing a screen, so Back can never drop you into the middle of a tour.
- The post-onboarding landing, so Back cannot walk you into setup.
- The app's boot restore, which is not a navigation you performed.
History is capped at 20 entries, and going somewhere new clears the forward stack — again, exactly as a browser does.
Things you might notice
- The arrows are greyed on a fresh launch. That is correct: nothing is behind you yet. They are still drawn, so you can see where they are.
- The trail truncates rather than pushing the toolbar around. It is the one element in the titlebar allowed to give up width; a long screen name gets an ellipsis, and hovering shows the full path.
OMNISCIOappears once. The wordmark is the trail's implicit root, so the trail itself never repeats it.- The group and panel names are English, even in another language. Those come from the integration manifests, which are not translated; the view names themselves do translate.
Not built (and why)
- Mouse back/forward buttons (X1/X2) — Windows delivers these to the main process as an
app-command, not as a renderer click, and the shell has no global mouse handling at all. It is a whole new input surface for a payoff limited to five-button mice. - Reveal-in-sidebar for a plain folder project — every sidebar group has a landing page, so this would apply to exactly one synthetic crumb.
For agents
Full invariants, the file-level sources of truth, and the safe-change checklist live in wayfinding-breadcrumb-contract.md. Read it before changing the resolver, the history store, or any panel's usePanelBreadcrumb call.
Related
Because the trail is built from the same manifests the sidebar reads, Settings Drilldown Nav describes the panel-and-tab structure a crumb is naming. Hub Jumper and Quick Launch Modal are the two keyboard-first ways to move between the same places, and the arrow chords themselves are listed with everything else in Keyboard Shortcuts.
Last verified 2026-09-23