Arij (issue tracker)
Omniscio's own Jira-style issue tracker — boards, backlog, sprints, issues, docs and automation — where an issue can launch and track a real agent session. Covers opening it from the sidebar, orgs, projects and members, the Omniscio account it signs in with, and the notification inbox.
Status: shipped. Arij is a true multi-user tracker backed by Omniscio's cloud backend (
amc-backarij-api), but it has no login of its own — you use it with your existing Omniscio account (Firebase Global Auth). Sign in to Omniscio once and Arij is signed in too.
What it is
Omniscio's first-party, Jira-style issue tracker — boards, backlog, sprints, issues, docs, dashboards, and automation — with one capability Jira doesn't have: issues can launch and track real Omniscio agent sessions. It is NOT the "Jira" integration (that one talks to Atlassian's Jira Cloud); Arij is its own product surface with its own data.
Where to find it
How to use it
- Open it: the Arij row in the sidebar. Your account's
arijEnabledflag is set automatically (the 2026-05-23 data-presence migration turns it on for existing installs that already had Arij data) — there is no Settings toggle. The old Settings section is now a read-only landing, reachable only by a direct deep link (?section=arij); Settings → Features no longer lists Arij (owner declutter decision 2B, 2026-08-14). - You're already signed in — Arij uses your Omniscio account, so opening the Arij tab while signed in to Omniscio drops you straight in (no separate register/login). Your account gets a home organization; you can create more orgs, invite members (owner / admin / member roles), and switch orgs from the org switcher. An existing arij account is linked by email — sign in to Omniscio with the same email your arij account already uses and the two resolve to one user.
- Create a project (key + name). Projects belong to an org; org owners/admins see every project, plain members need a per-project membership (added directly or via email invitation — cross-org invitations work).
- Work the Board (drag-and-drop kanban, swimlanes, saved JQL boards), Backlog (sprints, bulk edit), Issues (types, priorities, points, labels, components, versions, worklogs, watchers, attachments, links, @mention comments), Summary (dashboard), and Docs (per-project page tree).
On the Board, cards are Jira-style — cover image, due chip, assignee
avatar, priority / subtask glyphs, and hover-to-rename. Click a card for a
centered detail modal (the List/Backlog open the same detail as a right
drawer); right-click or use the kebab for the card menu (move / change
status / copy link / flag / label / link / parent / select cover / archive /
delete). The space header's ⋯ More actions covers star, linked teams,
background, archive, and delete. Card cover / flag / archive persist through
arij-api like every other issue field (the local agent-link mirror defaults
them — it is not the board's source of truth).
How it behaves
Agents work your issues
Every issue has a Start agent button (and sprints have a bulk "start agents" action, capped + confirm-gated):
- The first start on a project asks you to pick a local working folder —
Arij projects live in the cloud, so the folder mapping
(
settings.arijProjectFolders) tells Omniscio where the code lives. - Omniscio spawns a real agent session in that folder, briefed with the issue's summary, description, and acceptance criteria.
- The session's live status mirrors back onto the issue card (Running / Needs You / Finished / Error) with system comments on meaningful transitions, and an acceptance-criteria checklist comment on a clean finish.
- Watchers get notified through Arij's notification inbox (bell icon).
Account & profile
Arij has no account of its own — since the Firebase auth unification it rides Omniscio's Global Auth. There is no arij register/login card, no forgot-password flow, and no arij-specific sign-out: signing in / out, and password resets, are Omniscio-account concerns, handled in Omniscio's own sign-in — not inside Arij. Arij keeps exactly one account-scoped surface: editing your profile.
- Profile edit: the avatar button in Arij's top bar opens Account
settings, where you can change your display name and avatar.
PATCH /auth/me(arij-api) persists both; the main process brokers the Firebase ID token for the call. There is no password field here anymore. - Avatars: stored as an inline data URL in
users.avatar_url(no blob store / CDN). The renderer shrinks the chosen image locally to a 128px thumbnail before upload; server cap 64 KB, PNG/JPEG/WebP. Member avatars across Arij (cards, issue detail, people page, member pickers) show the photo when set, initials otherwise. - Linking an existing arij account: the backend is dual-auth — it verifies your Omniscio Firebase token and resolves it to an arij user, auto-creating or linking by verified email. An older arij account joins up automatically as long as its email matches your Omniscio sign-in email.
- Omniscio IPC auth surface (main owns every token): exactly
ARIJ_AUTH_STATUS,ARIJ_AUTH_ACCESS_TOKEN,ARIJ_AUTH_UPDATE_PROFILE. The oldARIJ_AUTH_LOGIN/_REGISTER/_FORGOT_PASSWORD/_CHANGE_PASSWORD/_LOGOUTchannels are deleted.
Automation & integrations
- Automation rules per project or org-wide: "when an issue is created / updated / transitioned, if <conditions>, then assign / set priority / transition / comment / label".
- Workflows: Arij issues can trigger Omniscio Workflows
(
trigger.arij_issue) and workflow actions can create / transition / comment on Arij issues. - Email notifications honor per-user preferences when the backend has SMTP configured; @mentions always land in the in-app inbox.
- Import a Jira JSON/CSV export into a project; export to JSON/CSV.
For agents
Key implementation facts (for agents)
- Auth is Omniscio Firebase Global Auth end-to-end. The renderer is gated on
useGlobalAuthStoreviaArijAuthGate(children mount on the Firebaseuid; the arij backend profile hydrates late). The main process brokers Firebase ID tokens overARIJ_AUTH_ACCESS_TOKEN(src/main/services/arij/auth-client.ts→getFirebaseIdToken, force-refresh →refreshFirebaseToken); the arij-api backend is dual-auth (Firebase-first, legacy JWT fallback) and links by verified email. Identity switches are always-on:arij-store.tsregisters aregisterIdentityScopedReset('arij', …)that stops realtime, clearsresetArijApiAuthCache()+resetArijStore(), and the gate keys children byuid. No arij-owned credential store (arij-auth.jsonis deleted on first use), no login UI. Contract:.claude/memory/contracts/arij-contract.mdI18/I19. - Renderer data access is HTTP to
arij-apivia thearijInvokechokepoint (src/renderer/src/features/arij/arij-api.ts) — NOT local SQLite. Live updates arrive over the/realtimeWebSocket (arij-realtime.ts, exponential-backoff reconnect). - The agent edge runs in Main (
src/main/services/arij/agent-link.tsonarij-http.ts): GET issue → spawn viacreateSessionWithPromptin the mapped folder → PATCHsessionId/agentStateup; a session-status subscriber mirrors state viaGET /issues/by-session/:sessionId. - Theming: Arij follows the Omniscio theme — it does NOT own a fixed Jira palette.
The
.arij-scope-wrapped tree reads--arij-*tokens thatarij-theme.cssaliases onto Omniscio's surface / accent / status vars, so light/dark, every built-in theme, and custom themes recolour Arij like the rest of the app. - Contracts:
.claude/memory/contracts/arij-contract.md(invariants) anddocs/arij-http-migration-contract.md(HTTP mapping).
Related
Arij is Omniscio's own tracker, so it is not the same thing as Jira board, which connects Omniscio to Atlassian's Jira Cloud instead. The sessions an issue starts behave like any other agent session, and the Agent Status Board is the fleet-wide view of them.
Last verified 2026-09-23