- Full Telegram connector — web UI configuration, employee routing, typing indicators, media support
/modelscommand + Opus 4.7 support in Telegram (#50)- Cron job latency alerting — Slack warning when scheduled jobs exceed threshold
- Slack
app_mentionhandler — bot now responds to@Botmentions in channels; root channel messages without mention are correctly ignored (#46, thanks @lisovet) crypto.randomUUIDpolyfill — web UI no longer crashes when accessed over plain HTTP on LAN/Tailscale (#47, thanks @lisovet)body.modelhonored inPOST /api/sessionsand/stub— per-employee model routing now works for MCP and API clients (#45, thanks @papajade55-debug, closes #38)- Slack unfurl crash — skip unfurl events that crashed the Claude engine (#44, thanks @MarockNRoll)
- Chat tabs — Cmd+W close, Cmd+Shift+[/] switch, draft persistence, status indicators
- Command palette — cmdk-powered Cmd+K with actions, recents, sessions, skills search
- Breadcrumb navigation — context-aware breadcrumbs on all pages
- ChatPane extraction — reusable chat component decoupled from page
- Enhanced sidebar — expandable employee groups, pin/unpin, context menu, hover actions
- React Query data layer — query key factory, hooks for all resources, WS→cache invalidation bridge
- Tailwind migration — 640→120 inline styles (81% reduction), shadcn token system
- Header consolidation — single 40px tab bar replaces 3 stacked headers on chat
- Mobile UX — more menu in top header, clean tab bar, responsive sidebar
- Session state sync — tabs and selected session stay in sync
- Instant tab switching — no scroll flash, useLayoutEffect for immediate scroll
- Goals CRUD API + SQLite table (backend, for future use)
- Cost aggregation API + budget enforcement system
- Mock engine for E2E tests
- Vitest setup (api + web), Playwright config, GitHub Actions CI workflow
- Removed: split view, goals/costs pages (no backend yet), 14 unused shadcn components
- Fixed: dual-fetch anti-pattern in sidebar, session delete via mutations
- Net: 81 files changed, +5,608 / -8,723 lines
- Codex engine now runs with
--dangerously-bypass-approvals-and-sandbox— prevents Jimmy-managed Codex sessions from being constrained by CLI sandbox/approval defaults
- Connector abstraction layer — connectors declare capabilities (threading, reactions, edits, attachments) and health status
replyMessage()vssendMessage()split — proper thread-aware message routing- CronConnector — cron jobs are now message sources routed through SessionManager (unified flow)
- Slack config options —
shareSessionInChannel,allowFromwhitelist,ignoreOldMessagesOnBoot - Transport state tracking — new
transportStatefield + queue depth visibility - In-chat slash commands —
/cron list|run|enable|disable,/model <name>,/doctor - Runtime cron control — trigger/enable/disable jobs without restart
- Web UI: Slack settings toggles for new config options
- Web UI: Transport visibility — connector name, queue depth, transport state badges
- Unified message routing — all sources flow through
SessionManager.route()with uniformIncomingMessage - Cron runner simplified — ~35% code reduction by delegating to SessionManager
- Capability-aware decorations — reactions/edits conditional on connector capabilities
- Config token masking — Slack tokens masked in
GET /api/config - Session queue monitoring —
getPendingCount()andgetTransportState()
- Build pipeline — web UI bundled into gateway dist
- Test suite — threads, queue, and registry tests using Node.js native test runner
- DB migration — auto-adds connector/transport columns, backfills from legacy fields
Connectorinterface expanded with new required methods:replyMessage(),getCapabilities(),getHealth(),reconstructTarget()IncomingMessageandSessiontypes have new required fieldsGET /api/connectorsresponse shape changed fromstring[]to objects with capabilitiesstartScheduler()now takesSessionManagerinstead of engine mapsendMessage()no longer posts to threads — usereplyMessage()
- Remove
@jinn/webworkspace dependency from published package — was causingunsupported URL type "workspace:"error onnpm i -g jinn-cli(web UI is embedded as static files during build, not a runtime dependency)
- Claude engine now runs with
--dangerously-skip-permissions— prevents sessions from hanging on tool approval prompts in headless mode
First release of the Jinn AI gateway platform.
- Gateway server with HTTP REST API + WebSocket real-time events
- Session manager with context builder (32K char budget, progressive trimming)
- SQLite session registry with WAL mode
- Per-session serial execution queue
- File watchers for hot-reload (config, cron, org, skills)
- Daemon lifecycle management (start/stop/status as background process)
- Multi-instance support with dynamic home directory resolution
- Claude Code CLI engine wrapper (spawn, JSON streaming, session resume)
- Codex SDK engine wrapper (in-process, streaming)
- Model/effort level passthrough and configuration
jinn setup— bootstrap ~/.jinn/ from templatesjinn start/stop/status— daemon managementjinn create/list/remove— instance managementjinn nuke— permanent instance deletion with safety promptsjinn migrate— AI-assisted template migrationsjinn skills— skill discovery + skills.sh integration--portflag for custom port binding
- Slack connector (Socket Mode via @slack/bolt)
- Thread/DM/channel source-ref mapping
- Reaction workflow (👀 → ✅/❌)
- Message splitting for long responses
- Attachment download support
- Employee personas (YAML) with departments, ranks, engine assignment
- Org scanner with @mention routing
- Department boards for inter-agent task tracking
- Rich employee identity + generic connector context
- Dynamic COO naming via onboarding
- Markdown-based skill playbooks (SKILL.md with YAML frontmatter)
- 10 built-in skills: management, cron-manager, skill-creator, self-heal, onboarding, migrate, sync, status, new, find-and-install
- Skill symlink syncing to .claude/skills/ and .agents/skills/
- skills.sh marketplace integration
- Skills directory watcher with WebSocket change events
- node-cron scheduler with hot-reloadable jobs.json
- Run logging to JSONL files
- Delegation pattern (cron → COO → employee → review → deliver)
- Optional delivery to connectors
- Full Next.js 15 static dashboard
- Chat interface with voice recording, file attachments, rich markdown
- Session browser with detail view
- Org map (React Flow) with grid/feed views + employee detail panels
- Kanban board with drag-drop, tickets, employee assignment
- Cron visualizations — weekly schedule heatmap, pipeline grid
- Cost dashboard with charts, anomaly detection, WoW comparison
- Activity console with log browser + floating live stream widget
- Global search (Cmd+K)
- Settings page + onboarding wizard
- 5-theme CSS system with accent color support
- shadcn/ui components
- Rich context injection (identity, CLAUDE.md, config, org, skills, cron, connectors, API reference)
- Local environment awareness
- Lazy onboarding (stub session)
- pnpm + Turborepo monorepo
- TypeScript throughout
- Web UI bundled into CLI package
- CI workflow (GitHub Actions)
- README, CONTRIBUTING guide, LICENSE