Skip to content

v0.2.0

Pre-release
Pre-release

Choose a tag to compare

@AbdelrahmanBerchan AbdelrahmanBerchan released this 10 Mar 15:52
· 149 commits to main since this release
9e67eef

Axis Browser v0.2.0

Performance & Cleanup

  • Removed dead spotlight code & heavy injections
    • Deleted the legacy spotlight keyboard/input handlers and unused suggestion pipeline that were still bundled but never used.
    • Replaced the aggressive executeJavaScript blocks on did-finish-load with a much lighter one-time lazy-image/iframe eager load pass (no long‑running observers, intervals, or massive querySelectorAll('*') scans).
    • Reduced settings polling from 100ms to 500ms and removed noisy console.log debug output to cut renderer overhead.

New Tab Page & Tab Key Behavior

  • Spotlight replaced with a full New Tab experience 🆕
    • Scrapped the old spotlight overlay and replaced it with a dedicated New Tab page that lives inside the app UI.
    • New Tab now has a centered black search surface with a Search / Ask toggle, integrated recommendation list, and an Ask AI chat area that grows until a set height and then becomes scrollable.
    • Suggestions only appear after you start typing, slide in/out smoothly, and update instantly without per‑item animations.
  • Tab key no longer breaks the layout ⌨️
    • Global handler now fully ignores Tab outside editable fields (prevents focus from jumping and the app entering a weird “full overlay” state).
    • On the New Tab page, pressing Tab in the search/ask field is explicitly intercepted and ignored so it never triggers the bug there specifically.
  • New tab search engines 🌐
    • Added Yahoo and Yandex as selectable default search engines in both the native settings window and in‑app settings.
    • getSearchUrl now knows how to build Yahoo and Yandex search URLs, and the search‑engine pill / suggestion text recognize them.

Incognito Windows & Tabs

  • True incognito windows 🕶️
    • Added a dedicated incognito window mode backed by an isolated Electron session partition (incognito) so cookies, cache, auth, and storage never mix with normal browsing.
    • Incognito windows always use a solid black theme (forced in CSS and theme logic) with an Incognito indicator block permanently positioned above the topmost tab.
    • History tracking is completely disabled for incognito, and pinned tabs are not allowed in incognito windows.
  • Incognito tabs entry points
    • Added New Incognito Tab options to the sidebar context menu and to the new sidebar plus menu, and wired both to the incognito window partition so they behave like a separate, fresh browser.

Settings Window, Sidebar Footer & New Tab Button

  • Native macOS settings window ⚙️
    • Moved settings out of a tab into a standalone, fully native‑style macOS popup window accessible from the app’s macOS menu.
    • Cleaned up the layout and styling so it looks like a modern macOS preferences panel, while keeping all previous settings functional.
  • Sidebar footer re‑layout 🧭
    • Removed the old Settings button from the bottom of the sidebar (since settings now live in the macOS menu) and moved the Downloads button into its place on the left.
    • Added a new plus button on the right side of the sidebar footer that opens a native‑styled context menu with New Tab, New Tab Group, and New Incognito Tab options.
    • Introduced a prominent “+ New Tab” button at the top of the tabs list in the sidebar so opening a new tab is always a single, obvious click.

AI Chat Panel

  • Smooth slide‑in / slide‑out animation for chat 💬
    • The main AI chat sidebar (opened from the URL bar “Chat” button) now has proper enter/exit animations, sliding in and out instead of instantly appearing or disappearing.
    • The animation is tuned to feel fast but intentional, matching the rest of the app’s motion and making the chat panel feel like part of the window instead of a sudden overlay.

macOS Dock & Window Title

  • Dock menu: New Window & New Incognito Window 🍎
    • Added a macOS Dock menu with New Window and New Incognito Window actions when right‑clicking the app icon.
    • Reused the existing incognito creation flow so new incognito windows behave exactly like the in‑app incognito command (isolated session, black theme, no history).
  • Window title follows the active tab 🪟
    • Exposed setWindowTitle over IPC and call it whenever the active tab title changes.
    • macOS now shows the current tab’s title in each window entry in the Dock menu; when there’s no active tab, the title falls back to “Axis Browser”.

Security & Dependency Updates

  • Electron security bump 🔒
    • Updated Electron from ^33.4.11 to ^37.3.1, pulling in upstream fixes including the ASAR integrity-bypass advisory.
    • Verified that the app boots and main‑process flags (GPU, performance switches) still apply correctly.
  • tar path traversal fix (CVE-2026-29786) 📦
    • Updated tar override and direct devDependency to ^7.5.10, and reinstalled so the lockfile now resolves tar to a patched 7.5.x (7.5.11).
    • Eliminates the hardlink path traversal issue raised by Dependabot and resolves the override/direct‑dependency conflict.
  • minimatch ReDoS fixes (9.x and 10.x) 🛡️
    • Added an override "minimatch": "^10.2.3" and a direct devDependency so the top‑level minimatch is 10.2.4, which fixes the matchOne() ReDoS in 10.x.
    • Regenerated the lockfile so nested 9.x minimatch now resolves to 9.0.9 (≥ 9.0.7), addressing the separate 9.0.6 ReDoS advisory.
    • npm install now reports 0 vulnerabilities for this project.

Full Changelog: v0.1.9...v0.2.0

Screen.Recording.2026-03-10.at.5.39.28.PM.mov