Skip to content

Commit b10b30d

Browse files
committed
feat: add agent workbench and codex history
1 parent 7c44818 commit b10b30d

40 files changed

Lines changed: 8270 additions & 362 deletions
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# THIS IS AUTOGENERATED. DO NOT EDIT MANUALLY
2+
version = 1
3+
name = "lovcode"
4+
5+
[setup]
6+
script = ""
7+
8+
[[actions]]
9+
name = "运行"
10+
icon = "run"
11+
command = "pnpm tauri dev"

AGENTS.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# AGENTS.md
2+
3+
This file provides guidance to Codex (Codex.ai/code) when working with code in this repository.
4+
5+
## Design System
6+
7+
This project uses **Lovstudio Warm Academic Style (暖学术风格)**
8+
9+
Reference complete design guide: file:///Users/mark/@lovstudio/design/design-guide.md
10+
11+
### Quick Rules
12+
1. **禁止硬编码颜色**:必须使用 semantic 类名(如 `bg-primary``text-muted-foreground`
13+
2. **字体配对**:标题用 `font-serif`,正文用默认 `font-sans`
14+
3. **圆角风格**:使用 `rounded-lg``rounded-xl``rounded-2xl`
15+
4. **主色调**:陶土色(按钮/高亮)+ 暖米色背景 + 炭灰文字
16+
5. **组件优先**:优先使用 shadcn/ui 组件
17+
18+
### Color Palette
19+
- **Primary**: #CC785C (陶土色 Terracotta)
20+
- **Background**: #F9F9F7 (暖米色 Warm Beige)
21+
- **Foreground**: #181818 (炭灰色 Charcoal)
22+
- **Border**: #E8E6DC
23+
24+
### Common Patterns
25+
- 主按钮: `bg-primary text-primary-foreground hover:bg-primary/90`
26+
- 卡片: `bg-card border border-border rounded-xl`
27+
- 标题: `font-serif text-foreground`
28+
29+
## Project Overview
30+
31+
Lovcode is a Vibe Coding assistant desktop app built with Tauri 2 + React 19 + TypeScript. Primary focus is supporting AI coding tool ecosystems (Codex, codex, etc.) with chat history viewer as the first feature.
32+
33+
## Commands
34+
35+
```bash
36+
# Frontend development (hot reload)
37+
pnpm dev
38+
39+
# Type check + production build
40+
pnpm build
41+
42+
# Run Tauri desktop app (auto-starts pnpm dev)
43+
pnpm tauri dev
44+
45+
# Build distributable
46+
pnpm tauri build
47+
```
48+
49+
## Architecture
50+
51+
**Dual-layer architecture:**
52+
- `src/` - React frontend (Vite, port 1420)
53+
- `src-tauri/` - Rust backend (Tauri 2)
54+
55+
**Frontend-backend communication:**
56+
- Use `invoke()` from `@tauri-apps/api/core` to call Rust commands
57+
- Define Rust commands with `#[tauri::command]` in `src-tauri/src/lib.rs`
58+
- Register commands in `tauri::generate_handler![]`
59+
60+
## Conventions
61+
62+
- CSS: Tailwind CSS preferred
63+
- No dynamic imports or setTimeout unless necessary
64+
- Extract shared components when patterns repeat across multiple components
65+
- 不要执行pnpm build等,因为本地在运行 pnpm tauri dev

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# Changelog
22

3+
## 0.34.0
4+
5+
### Minor Changes
6+
7+
- Add the agent workbench with Claude Code, Codex, and terminal session launching, persistent agent workspace state, project/session environment scripts, and hook-based activity tracking.
8+
9+
Index local Codex rollout sessions alongside Claude history, including Codex filtering, usage extraction, resume support, and live session updates from the Codex sessions directory.
10+
11+
Improve file and document previews with multi-tab file previews, ZIP archive browsing, unsupported binary/document fallbacks, Markdown frontmatter display, remote/local image rendering, and expanded document navigation controls.
12+
313
## 0.33.0
414

515
### Minor Changes

README.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@
3535

3636
## Release Highlights
3737

38+
### v0.34.0 — Agent Workbench and Codex History
39+
40+
Lovcode now has an agent workbench for launching Claude Code, Codex, and terminal sessions from a selected project, with persistent workspace state, project/session environment scripts, and hook-based activity tracking. Codex rollout sessions are indexed alongside Claude history with a dedicated Codex filter, usage extraction, resume support, and live updates from `~/.codex/sessions`. File and document previews now support multi-tab file previews, ZIP archive browsing, unsupported binary/document fallbacks, Markdown frontmatter, and remote/local image rendering.
41+
3842
### v0.33.0 — Skills Table and Smart Path Routing
3943

4044
Skills management now uses a dense sortable table with vendor/source filters, install metadata, token estimates, and marketplace previews. Markdown content across marketplace and file previews shares the same renderer with GFM tables and smart local-path links, including candidate-prefix routing for agent output paths. File previews now use a compact Finder-style breadcrumb for faster navigation, and structured tool results can preview generated images inline.
@@ -45,6 +49,7 @@ Local paths in prompts and chat messages now open inside Lovcode with a resizabl
4549

4650
| Version | Highlights |
4751
|---------|------------|
52+
| **0.34.0** | Agent Workbench launches Claude Code, Codex, and terminal sessions with persistent state; project/session environment scripts can be saved and run from Lovcode; Claude and Codex hooks track activity; Codex rollout sessions are indexed with filtering, usage extraction, resume support, and live updates; file previews now support tabs, ZIP browsing, unsupported-format fallbacks, and richer Markdown/image rendering |
4853
| **0.33.0** | Skills management table with vendor/source filtering, ranking, install metadata, token estimates, and marketplace previews; shared MarkdownRenderer table/path support across marketplace and file previews; smart path routing offers candidate prefix paths for agent output files; FileViewer path navigation uses a compact Finder-style breadcrumb; tool-result images can open in the preview pane |
4954
| **0.32.0** | Inline file preview for local path links with line/column reveal, directory browsing, and resizable preview pane; prompt path detection handles `@src/file.tsx:line:column(selector)` style references; global search gains All / Full text / Session ID / Details modes; document reader sidebars are now resizable and persisted |
5055
| **0.31.0** | Architecture refactor: removed Workspace dashboard (PanelGrid, FeatureTabs, KanbanBoard, GitHistory, LogoManager, ProjectDashboard) in favor of page-centric routing; `/chat/*``/history/*`; `/knowledge/reference` (static) → `/knowledge/source/[id]` (dynamic) with `[...docPath]` sub-routes; new `useStreamedSessions` hook for streamed session list rendering; splash now waits for `/history` `ProjectList` `app:ready` signal before dismissing; LLM provider settings page removed |
@@ -69,12 +74,16 @@ Local paths in prompts and chat messages now open inside Lovcode with a resizabl
6974

7075
## Features
7176

72-
- **Chat History Viewer** — Browse and search conversation history across all projects with scoped full-text, session ID, and metadata search modes
73-
- **Granular Data Sources** — Switch between `cli` (Claude Code) / `app-code` / `app-web` / `app-cowork` with two-level tabs
77+
- **Dashboard** — Start from a cross-module overview of history, active agents, reusable commands, distilled knowledge, and recent project activity
78+
- **Agent Workbench** — Launch Claude Code, Codex, or a terminal in a selected project; track active/archived sessions, unread/review states, and session activity
79+
- **Environment Scripts** — Save project/session setup, cleanup, and custom runtime actions, then run them in an embedded terminal dock
80+
- **Chat History Viewer** — Browse and search Claude and Codex conversation history across all projects with scoped full-text, session ID, and metadata search modes
81+
- **Granular Data Sources** — Switch between `cli` (Claude Code), `codex`, `app-code`, `app-web`, and `app-cowork` with source filters
7482
- **Live claude.ai Sync** — Pull web conversations directly via decrypted cookies (no manual export needed); also supports `.zip` / directory import
7583
- **Continue From the Bottom** — Reply to a session inline without leaving the detail view
7684
- **Rich Markdown Rendering** — GFM tables and syntax-highlighted code blocks (Warm Academic theme) inside chat messages
77-
- **Smart Path Links** — Bare paths, prompt mentions, and markdown `[text](path)` links are existence-checked against the relevant `cwd`; unresolved agent-output paths surface candidate prefix routes and existing files open in a Lovcode preview pane
85+
- **Smart Path Links** — Bare paths, prompt mentions, and markdown `[text](path)` links are existence-checked against the relevant `cwd`; unresolved agent-output paths surface candidate prefix routes and existing files open in a tabbed Lovcode preview pane
86+
- **File and Document Preview** — Preview UTF-8 text, Markdown, images, directories, and ZIP archives inline; unsupported binary/document formats fall back to clear open/reveal actions
7887
- **Live Context-Window Readout** — Session detail footer shows the active model, provider, and peak context-window occupancy (input + cache_read + cache_creation) per round
7988
- **Structured Content Blocks** — Tool calls, thinking, grouped tool results, and generated images render as first-class blocks with preview support
8089
- **Sidebar with Pinned / Recent / Import** — Tri-state Pinned toggle mirrored to Claude desktop `starredIds`; Algolia-style ⌘K search
@@ -121,11 +130,11 @@ pnpm tauri build
121130
## Usage
122131

123132
1. Launch Lovcode
124-
2. Select **History** — sidebar shows Pinned / Recent / Import; ⌘K to search (or open Global Chat Search via the configured hotkey)
125-
3. Use the two-level tabs to switch data source: `cli` / `app-code` / `app-web` / `app-cowork`
126-
4. Open a session: tool calls / thinking / GFM tables / code blocks render inline; reply at the bottom to continue
133+
2. Start on **Dashboard** for a cross-module overview, or open **Workbench** to launch a Claude Code, Codex, or terminal session in a project
134+
3. Use **History** to browse sessions; source filters include `cli`, `codex`, `app-code`, `app-web`, and `app-cowork`
135+
4. Open a session: tool calls, thinking, GFM tables, code blocks, and linked file previews render inline; reply at the bottom to continue
127136
5. Live-sync claude.ai web chats from your logged-in browser, or import a `.zip` / folder export
128-
6. Manage commands, MCP servers, skills, hooks, sub-agents, output styles, and MaaS providers under **Configuration**
137+
6. Manage commands, MCP servers, skills, hooks, sub-agents, output styles, runtime environments, and MaaS providers under **Configuration**
129138
7. Visit **Marketplace** to discover community templates
130139

131140
## Tech Stack

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "lovcode",
33
"private": true,
4-
"version": "0.33.0",
4+
"version": "0.34.0",
55
"type": "module",
66
"packageManager": "pnpm@10.18.1",
77
"scripts": {

public/agent-icons/claude.png

4.57 KB
Loading

public/agent-icons/openai.png

3.74 KB
Loading

src-tauri/Cargo.lock

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

src-tauri/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lovcode"
3-
version = "0.33.0"
3+
version = "0.34.0"
44
description = "A Tauri App"
55
authors = ["you"]
66
edition = "2021"
@@ -23,6 +23,7 @@ tauri-plugin-opener = "2"
2323
tauri-plugin-dialog = "2"
2424
serde = { version = "1", features = ["derive"] }
2525
serde_json = "1"
26+
toml_edit = "0.23"
2627
dirs = "6"
2728
regex = "1"
2829
lazy_static = "1"
@@ -38,6 +39,7 @@ base64 = "0.22"
3839
arboard = "3"
3940
shell-escape = "0.1.5"
4041
zip = "2"
42+
encoding_rs = "0.8"
4143
filetime = "0.2"
4244
libc = "0.2.179"
4345
tauri-plugin-updater = { version = "2", features = ["rustls-tls"] }

0 commit comments

Comments
 (0)