From a1452ad35330eabc6cbee09a4c7d34dfabb5593d Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Sat, 24 Jan 2026 19:21:56 +0000 Subject: [PATCH 01/12] Add release notes command --- .opencode/commands/release-notes.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .opencode/commands/release-notes.md diff --git a/.opencode/commands/release-notes.md b/.opencode/commands/release-notes.md new file mode 100644 index 00000000..e0c7734c --- /dev/null +++ b/.opencode/commands/release-notes.md @@ -0,0 +1,7 @@ +--- +description: Creates release notes +agent: build +--- + +Check how I do prepare release notes here - https://github.com/NeuralNomadsAI/CodeNomad/releases/tag/v0.7.0 +Use the same format to create release notes from users perspective for new release by looking at changes from last tagged release to tip of branch \ No newline at end of file From ee59622b982ab2fe0b401e2fe1d2f6aff15fb5a9 Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Sat, 24 Jan 2026 19:23:01 +0000 Subject: [PATCH 02/12] Upgrade min version to 0.9.0 --- packages/cloudflare/release-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cloudflare/release-config.json b/packages/cloudflare/release-config.json index 8d1da1a7..ac496141 100644 --- a/packages/cloudflare/release-config.json +++ b/packages/cloudflare/release-config.json @@ -1,4 +1,4 @@ { - "minServerVersion": "0.8.1", + "minServerVersion": "0.9.0", "latestServerUrl": "https://github.com/NeuralNomadsAI/CodeNomad/releases/latest" } From 8fa0175b984f41b8b6d16556105c52fbc8f9dbfe Mon Sep 17 00:00:00 2001 From: Shantur Rathore Date: Sun, 25 Jan 2026 00:09:22 +0000 Subject: [PATCH 03/12] feat(ui): improve folder picker layout --- packages/ui/src/components/brand-icons.tsx | 38 ++ .../src/components/folder-selection-view.tsx | 341 ++++++++++-------- 2 files changed, 232 insertions(+), 147 deletions(-) create mode 100644 packages/ui/src/components/brand-icons.tsx diff --git a/packages/ui/src/components/brand-icons.tsx b/packages/ui/src/components/brand-icons.tsx new file mode 100644 index 00000000..c8a0bd88 --- /dev/null +++ b/packages/ui/src/components/brand-icons.tsx @@ -0,0 +1,38 @@ +import type { Component } from "solid-js" + +type BrandIconProps = { + class?: string + title?: string +} + +export const GitHubMarkIcon: Component = (props) => ( + + {props.title ? {props.title} : null} + + +) + +export const DiscordSymbolIcon: Component = (props) => ( + + {props.title ? {props.title} : null} + + +) diff --git a/packages/ui/src/components/folder-selection-view.tsx b/packages/ui/src/components/folder-selection-view.tsx index c4e445e6..c4b7a408 100644 --- a/packages/ui/src/components/folder-selection-view.tsx +++ b/packages/ui/src/components/folder-selection-view.tsx @@ -6,6 +6,7 @@ import DirectoryBrowserDialog from "./directory-browser-dialog" import Kbd from "./kbd" import { openNativeFolderDialog, supportsNativeDialogs } from "../lib/native/native-functions" import VersionPill from "./version-pill" +import { DiscordSymbolIcon, GitHubMarkIcon } from "./brand-icons" const codeNomadLogo = new URL("../images/CodeNomad-Icon.png", import.meta.url).href @@ -188,6 +189,11 @@ const FolderSelectionView: Component = (props) => { if (isLoading()) return props.onSelectFolder(path, selectedBinary()) } + + const openExternalLink = (url: string) => { + if (typeof window === "undefined") return + window.open(url, "_blank", "noopener,noreferrer") + } async function handleBrowse() { if (isLoading()) return @@ -242,170 +248,211 @@ const FolderSelectionView: Component = (props) => { style="background-color: var(--surface-secondary)" >
-
-
- CodeNomad logo -
-

CodeNomad

-

Select a folder to start coding with AI

-
- -
-
- - -
- - 0} - fallback={ -
-
- -
-

No Recent Folders

-

Browse for a folder to get started

-
- } - > -
-
-

Recent Folders

-

- {folders().length} {folders().length === 1 ? "folder" : "folders"} available -

-
-
(recentListRef = el)}> - - {(folder, index) => ( -
-
- - -
-
- )} -
-
-
-
- -
- - -
- -
- - {/* Advanced settings section */} -
- -
+ -