Skip to content

Commit 410dd99

Browse files
authored
Merge pull request #206 from Latitudes-Dev/shuvcode-dev
Merge shuvcode-dev into integration
2 parents 400d4e7 + 3044549 commit 410dd99

35 files changed

+414
-1083
lines changed

.github/last-synced-tag

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.0.201
1+
v1.0.203

CONTEXT/PLAN-202-web-app-askquestion-ui-2025-12-24.md

Lines changed: 0 additions & 359 deletions
This file was deleted.

CONTEXT/PLAN-5638-fix-worktree-project-id-collision-2025-12-22.md

Lines changed: 0 additions & 530 deletions
This file was deleted.

bun.lock

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/app",
3-
"version": "1.0.201",
3+
"version": "1.0.203",
44
"description": "",
55
"type": "module",
66
"exports": {

packages/app/src/components/prompt-input.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,18 +1009,21 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
10091009
onInput={handleInput}
10101010
onKeyDown={handleKeyDown}
10111011
classList={{
1012-
"w-full px-5 py-3 text-14-regular text-text-strong focus:outline-none whitespace-pre-wrap": true,
1012+
"w-full px-5 py-3 pr-12 text-14-regular text-text-strong focus:outline-none whitespace-pre-wrap": true,
10131013
"[&_[data-type=file]]:text-icon-info-active": true,
10141014
"font-mono!": store.mode === "shell",
10151015
}}
10161016
/>
10171017
<Show when={!prompt.dirty() && store.imageAttachments.length === 0}>
1018-
<div class="absolute top-0 inset-x-0 px-5 py-3 text-14-regular text-text-weak pointer-events-none whitespace-nowrap truncate">
1018+
<div class="absolute top-0 inset-x-0 px-5 py-3 pr-12 text-14-regular text-text-weak pointer-events-none whitespace-nowrap truncate">
10191019
{store.mode === "shell"
10201020
? "Enter shell command..."
10211021
: `Ask anything... "${PLACEHOLDERS[store.placeholder]}"`}
10221022
</div>
10231023
</Show>
1024+
<div class="absolute top-4.5 right-4">
1025+
<SessionContextUsage />
1026+
</div>
10241027
</div>
10251028
<div class="relative p-3 flex items-center justify-between">
10261029
<div class="flex items-center justify-start gap-1">
@@ -1077,7 +1080,6 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
10771080
</Tooltip>
10781081
</Match>
10791082
</Switch>
1080-
<SessionContextUsage />
10811083
</div>
10821084
<div class="flex items-center gap-1 absolute right-2 bottom-2">
10831085
<input

packages/app/src/components/session-context-usage.tsx

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,28 +34,27 @@ export function SessionContextUsage() {
3434
<Show when={context?.()}>
3535
{(ctx) => (
3636
<Tooltip
37-
openDelay={300}
3837
value={
39-
<div class="flex flex-col gap-1 p-2">
40-
<div class="flex justify-between gap-4">
41-
<span class="text-text-weaker">Tokens</span>
42-
<span class="text-text-strong">{ctx().tokens}</span>
38+
<div class="flex flex-col gap-1">
39+
<div class="flex gap-3">
40+
<span class="opacity-70 text-right flex-1">Tokens</span>
41+
<span class="text-left flex-1">{ctx().tokens}</span>
4342
</div>
44-
<div class="flex justify-between gap-4">
45-
<span class="text-text-weaker">Usage</span>
46-
<span class="text-text-strong">{ctx().percentage ?? 0}%</span>
43+
<div class="flex gap-3">
44+
<span class="opacity-70 text-right flex-1">Usage</span>
45+
<span class="text-left flex-1">{ctx().percentage ?? 0}%</span>
4746
</div>
48-
<div class="flex justify-between gap-4">
49-
<span class="text-text-weaker">Cost</span>
50-
<span class="text-text-strong">{cost()}</span>
47+
<div class="flex gap-3">
48+
<span class="opacity-70 text-right flex-1">Cost</span>
49+
<span class="text-left flex-1">{cost()}</span>
5150
</div>
5251
</div>
5352
}
5453
placement="top"
5554
>
56-
<div class="flex items-center gap-1">
57-
<span class="text-12-medium text-text-weak">{`${ctx().percentage ?? 0}%`}</span>
55+
<div class="flex items-center gap-1.5">
5856
<ProgressCircle size={16} strokeWidth={2} percentage={ctx().percentage ?? 0} />
57+
{/* <span class="text-12-medium text-text-weak">{`${ctx().percentage ?? 0}%`}</span> */}
5958
</div>
6059
</Tooltip>
6160
)}

packages/app/src/pages/layout.tsx

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createEffect, createMemo, For, Match, onMount, ParentProps, Show, Switch, type JSX } from "solid-js"
1+
import { createEffect, createMemo, For, Match, onMount, ParentProps, Show, Switch, untrack, type JSX } from "solid-js"
22
import { DateTime } from "luxon"
33
import { A, useNavigate, useParams } from "@solidjs/router"
44
import { useLayout, getAvatarColors, LocalProject } from "@/context/layout"
@@ -319,8 +319,11 @@ export default function Layout(props: ParentProps) {
319319
createEffect(() => {
320320
if (!params.dir || !params.id) return
321321
const directory = base64Decode(params.dir)
322-
setStore("lastSession", directory, params.id)
323-
notification.session.markViewed(params.id)
322+
const id = params.id
323+
setStore("lastSession", directory, id)
324+
notification.session.markViewed(id)
325+
untrack(() => layout.projects.expand(directory))
326+
requestAnimationFrame(() => scrollToSession(id))
324327
})
325328

326329
createEffect(() => {
@@ -467,7 +470,12 @@ export default function Layout(props: ParentProps) {
467470
class="flex flex-col min-w-0 text-left w-full focus:outline-none"
468471
>
469472
<div class="flex items-center self-stretch gap-6 justify-between transition-[padding] group-hover/session:pr-7 group-focus-within/session:pr-7 group-active/session:pr-7">
470-
<span class="text-14-regular text-text-strong overflow-hidden text-ellipsis truncate">
473+
<span
474+
classList={{
475+
"text-14-regular text-text-strong overflow-hidden text-ellipsis truncate": true,
476+
"animate-pulse": isWorking(),
477+
}}
478+
>
471479
{props.session.title}
472480
</span>
473481
<div class="shrink-0 group-hover/session:hidden group-active/session:hidden group-focus-within/session:hidden">
@@ -515,7 +523,15 @@ export default function Layout(props: ParentProps) {
515523
onClick={() => dialog.show(() => <DialogSessionRenameGlobal session={props.session} />)}
516524
/>
517525
</Tooltip>
518-
<Tooltip placement="right" value="Archive session">
526+
<Tooltip
527+
placement="right"
528+
value={
529+
<div class="flex items-center gap-2">
530+
<span>Archive session</span>
531+
<span class="text-icon-base text-12-medium">{command.keybind("session.archive")}</span>
532+
</div>
533+
}
534+
>
519535
<IconButton icon="archive" variant="ghost" onClick={() => archiveSession(props.session)} />
520536
</Tooltip>
521537
</div>
@@ -600,7 +616,15 @@ export default function Layout(props: ParentProps) {
600616
</DropdownMenu.Content>
601617
</DropdownMenu.Portal>
602618
</DropdownMenu>
603-
<Tooltip placement="top" value="New session">
619+
<Tooltip
620+
placement="top"
621+
value={
622+
<div class="flex items-center gap-2">
623+
<span>New session</span>
624+
<span class="text-icon-base text-12-medium">{command.keybind("session.new")}</span>
625+
</div>
626+
}
627+
>
604628
<IconButton as={A} href={`${slug()}/session`} icon="plus-small" variant="ghost" />
605629
</Tooltip>
606630
</div>

packages/console/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/console-app",
3-
"version": "1.0.201",
3+
"version": "1.0.203",
44
"type": "module",
55
"scripts": {
66
"typecheck": "tsgo --noEmit",

packages/console/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
33
"name": "@opencode-ai/console-core",
4-
"version": "1.0.201",
4+
"version": "1.0.203",
55
"private": true,
66
"type": "module",
77
"dependencies": {

0 commit comments

Comments
 (0)