Repository navigation
feat: file-based changelog system as settings page - #79
Conversation
Add a changelog page to Settings with a timeline layout matching orbit.build/changelog. Changelogs are auto-discovered from markdown files in apps/agent/src/changelogs/ via Vite import.meta.glob — drop a new file and it appears without code changes. - 6 changelog entries (v0.0.1–v0.0.6) with full release notes - Hybrid data model: bundled files + remote release notes from updater - Timeline UI with sticky date column, dot/line, version badges - Changelog button on update toast opens Settings without dismissing - Sidebar "What's new" link after toast is dismissed - Inline code restyled (chat + changelog): subtle border, tinted bg - Top/bottom gradient fade masks on settings scroll container - Timezone-safe date parsing (local midnight, no UTC shift) - Tests for loader, merge logic, renderer, toast wiring, nav
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aeb5fb6634
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| label="Changelog" | ||
| variant="secondary" | ||
| onClick={() => { | ||
| useUIStore.getState().openSettings('changelog'); |
There was a problem hiding this comment.
Guard the changelog toast action on the welcome screen
When Orbit is still showing the welcome surface, clicking this new Changelog button only flips settingsOpen; App.tsx renders the settings surface only when !isWelcome (settingsOpen && !isWelcome at lines 909-915), so first-launch users get a button that appears to do nothing. This regression is specific to the no-workspace/welcome flow, but in that state there is no other visible way to reach the new changelog page.
Useful? React with 👍 / 👎.
| onOverlayMount(); | ||
| return (): void => { | ||
| onOverlayUnmount(); | ||
| }; | ||
| }, [open]); |
There was a problem hiding this comment.
Keep the browser overlay hidden until lightbox exit finishes
In browser mode, this effect calls onOverlayUnmount() as soon as open flips to false, but the dialog itself stays mounted for the 200ms AnimatePresence exit animation. That lets showBrowserSafe() run before the lightbox has actually disappeared, so the native browser window can flash behind the fading overlay. The previous DialogOverlay implementation tied the hide/show lifecycle to the real overlay mount, which avoided that race.
Useful? React with 👍 / 👎.
…error handling Connect Settings UI API keys to agent-bridge sidecar (AES-256-GCM encrypted credentials flow), add startup preflight health checks, credential bridge for Rust↔sidecar key exchange, auth error banner, error classifier, and health indicator components. Protect shell env API keys from OAuth deletion. Also fix Tailwind v4 canonical classes in update-toast and clippy warnings in build.rs. Mark credential plans as done and sync plan tracking index.
Add radio-card selector to Account Settings so users can explicitly choose between OAuth and API Key as their preferred Claude auth method. Persists preference in encrypted credentials, respects it at startup and in the sidecar credential push flow.
Fix two bugs in the react-grab element selector: 1. "Failed to copy" tooltip caused by async handler returning Promise 2. Missing content in chips showing only bare tag name Make onElementSelect synchronous (returns true immediately), capture textContent with sanitization, and defer React source enrichment via a separate orbit-eval://element-enriched URL scheme with epoch-based staleness protection. Add click-to-inspect detail dialog on compact element chips with syntax-highlighted HTML, copy buttons, click-to-open file in editor, and keyboard accessibility.
- New: docs/skills/PLUGIN-PUBLISHING-GUIDE.md — Claude Code plugin creation, plugin.json manifest, marketplace distribution, Orbit-plugin ref - Updated: docs/skills/SKILLS-PUBLISHING-GUIDE.md — added Orbit Audit Suite (11 skills) to the current skills table - Updated: docs/CLAUDE.md — added plugin guide to skills/ index
Summary
import.meta.glob— drop a new.mdfile inapps/agent/src/changelogs/and it appears without code changesChanges
Test plan
bun run typecheckpassesbun run lintpassesbun run testpasses (new tests for loader, merge logic, renderer, toast wiring, settings nav).mdfile tochangelogs/→ restart dev → appears automatically