Skip to content

Commit c4b38a7

Browse files
committed
refactor: remove Workspace/PanelGrid, rename chat → history, add knowledge/source
- Remove Workspace dashboard (FeatureSidebar/Tabs, GitHistory, KanbanBoard, LogoManager, ProjectDashboard/Diagnostics/Sidebar, WorkspaceView, types) - Remove PanelGrid (PanelGrid, SessionPanel) — superseded by page-centric routing - Remove legacy chat routes (/chat/*, [projectId]/[sessionId]) — replaced by /history with cleaner project/session structure - Remove Settings/LlmProviderView and /settings/llm — LLM config moves out - Remove useFeatureCreation, useNavigation hooks — no longer needed without Workspace tabs - Remove workspaceStore (Tauri) and workspace atoms — feature tabs / dashboard state no longer persisted - Add /history (index + [projectId]) — primary chat history view - Add /knowledge/source/[id] — dynamic knowledge source pages, replacing static /knowledge/reference - Add useStreamedSessions hook + streamed session list rendering - Add ProjectLogo shared component - GlobalHeader: drop GlobalFeatureTabs/CreateFeatureDialog/VerticalFeatureTabs - _layout: defer splash dismissal until /history's ProjectList signals app:ready, so users don't see the empty shell during initial session scan - Tauri lib.rs: significant backend rewrite supporting the new structure - gitignore: untrack .claude/ and output/ workspace artifacts
1 parent 2b5a985 commit c4b38a7

78 files changed

Lines changed: 3694 additions & 10861 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ dist-ssr
2222
*.njsproj
2323
*.sln
2424
*.sw?
25+
26+
# Local workspace artifacts
27+
.claude/
28+
output/

index.html

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,84 @@
55
<link rel="icon" type="image/svg+xml" href="/lovcode.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<title>Lovcode - Vibe Coding Assistant</title>
8+
<style>
9+
/* Splash screen — paints on the very first frame, before React mounts.
10+
Removed by main.tsx once <RouterProvider> renders. */
11+
html, body { margin: 0; background: #F9F9F7; }
12+
#splash {
13+
position: fixed;
14+
inset: 0;
15+
z-index: 2147483647;
16+
display: flex;
17+
flex-direction: column;
18+
align-items: center;
19+
justify-content: center;
20+
gap: 28px;
21+
background: #F9F9F7;
22+
transition: opacity 280ms ease;
23+
}
24+
#splash.fade { opacity: 0; pointer-events: none; }
25+
#splash .logo {
26+
width: 96px;
27+
height: 96px;
28+
animation: splash-breathe 1.8s ease-in-out infinite;
29+
}
30+
#splash .label {
31+
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
32+
font-size: 12px;
33+
letter-spacing: 0.02em;
34+
color: rgba(24, 24, 24, 0.45);
35+
margin-top: -8px;
36+
}
37+
#splash .bar {
38+
width: 140px;
39+
height: 2px;
40+
background: rgba(24, 24, 24, 0.08);
41+
border-radius: 1px;
42+
overflow: hidden;
43+
}
44+
#splash .bar::after {
45+
content: "";
46+
display: block;
47+
width: 40%;
48+
height: 100%;
49+
background: #CC785C;
50+
border-radius: 1px;
51+
animation: splash-slide 1.2s ease-in-out infinite;
52+
}
53+
@keyframes splash-breathe {
54+
0%, 100% { opacity: 0.85; transform: scale(1); }
55+
50% { opacity: 1; transform: scale(1.04); }
56+
}
57+
@keyframes splash-slide {
58+
0% { transform: translateX(-100%); }
59+
100% { transform: translateX(350%); }
60+
}
61+
@media (prefers-reduced-motion: reduce) {
62+
#splash .logo { animation: none; }
63+
#splash .bar::after { animation: splash-slide 2.4s linear infinite; }
64+
}
65+
</style>
866
</head>
967

1068
<body>
69+
<div id="splash">
70+
<img class="logo" src="/logo.svg" alt="" />
71+
<div class="label">Reading chat history…</div>
72+
<div class="bar" role="progressbar" aria-label="Loading"></div>
73+
</div>
74+
<script>
75+
// Auxiliary windows (transparent NSPanel for search overlay, prompt
76+
// detail popups) must NOT show the main-window splash — they have no
77+
// app shell and the beige background would paint a giant block.
78+
(function () {
79+
var hash = location.hash || "";
80+
if (hash.indexOf("/search-overlay") !== -1 || hash.indexOf("/prompt-detail") !== -1) {
81+
var s = document.getElementById("splash");
82+
if (s) s.remove();
83+
}
84+
})();
85+
</script>
1186
<div id="root"></div>
1287
<script type="module" src="/src/main.tsx"></script>
1388
<script>

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
"@radix-ui/react-tooltip": "^1.2.8",
2828
"@tailwindcss/typography": "^0.5.19",
2929
"@tailwindcss/vite": "^4.1.17",
30+
"@tanstack/query-sync-storage-persister": "^5.100.8",
3031
"@tanstack/react-query": "^5.90.12",
32+
"@tanstack/react-query-persist-client": "^5.100.8",
3133
"@tanstack/react-virtual": "^3.13.13",
3234
"@tauri-apps/api": "^2.10.1",
3335
"@tauri-apps/plugin-dialog": "^2",

pnpm-lock.yaml

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

src-tauri/Cargo.lock

Lines changed: 3 additions & 2 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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ aes = "0.8"
4949
cbc = { version = "0.1", features = ["std"] }
5050
pbkdf2 = "0.12"
5151
sha1 = "0.10"
52+
rayon = "1.12.0"
5253

5354
[target.'cfg(target_os = "macos")'.dependencies]
5455
cocoa = "0.26"

0 commit comments

Comments
 (0)