Skip to content

Commit d267e1b

Browse files
sync: merge upstream v1.0.167 into integration
Resolved conflicts: - bun.lock: Regenerated from scratch - packages/*/package.json: Accept upstream version (1.0.167) - packages/extensions/zed/extension.toml: Accept upstream version Upstream changes include: - Version bump to 1.0.167 - Terminal title toggle feature added to config - MCP authentication improvements - Legal pages (privacy policy, terms of service) - Tauri package updates Fork features preserved: - PR anomalyco#4898: Search in messages (Ctrl+F) - PR anomalyco#4791: ANSI bash output support - PR anomalyco#4900: Double Ctrl+C to exit - PR anomalyco#4709: Live token usage during streaming - PR anomalyco#4865: Subagents sidebar navigation - PR anomalyco#4515: Show plugins in /status - PR anomalyco#5508: Cache management commands - PR #ariane-emory: Granular file permissions - PR #fork-140: Toggle transparent background - Desktop features: slash commands, shell mode, themes, branding
2 parents b2e7e7b + 194ff49 commit d267e1b

40 files changed

Lines changed: 3425 additions & 484 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ Session.vim
2020
opencode.json
2121
a.out
2222
target
23+
.scripts

bun.lock

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

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.166-17",
3+
"version": "1.0.167",
44
"type": "module",
55
"scripts": {
66
"typecheck": "tsgo --noEmit",

packages/console/app/src/component/legal.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ export function Legal() {
99
<span>
1010
<A href="/brand">Brand</A>
1111
</span>
12+
<span>
13+
<A href="/legal/privacy-policy">Privacy</A>
14+
</span>
15+
<span>
16+
<A href="/legal/terms-of-service">Terms</A>
17+
</span>
1218
</div>
1319
)
1420
}

packages/console/app/src/routes/brand/index.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
}
99
}
1010

11-
[data-page="enterprise"] {
11+
[data-page="enterprise"],
12+
[data-page="legal"] {
1213
--color-background: hsl(0, 20%, 99%);
1314
--color-background-weak: hsl(0, 8%, 97%);
1415
--color-background-weak-hover: hsl(0, 8%, 94%);
Lines changed: 343 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,343 @@
1+
[data-component="privacy-policy"] {
2+
max-width: 800px;
3+
margin: 0 auto;
4+
line-height: 1.7;
5+
}
6+
7+
[data-component="privacy-policy"] h1 {
8+
font-size: 2rem;
9+
font-weight: 700;
10+
color: var(--color-text-strong);
11+
margin-bottom: 0.5rem;
12+
margin-top: 0;
13+
}
14+
15+
[data-component="privacy-policy"] .effective-date {
16+
font-size: 0.95rem;
17+
color: var(--color-text-weak);
18+
margin-bottom: 2rem;
19+
}
20+
21+
[data-component="privacy-policy"] h2 {
22+
font-size: 1.5rem;
23+
font-weight: 600;
24+
color: var(--color-text-strong);
25+
margin-top: 3rem;
26+
margin-bottom: 1rem;
27+
padding-top: 1rem;
28+
border-top: 1px solid var(--color-border-weak);
29+
}
30+
31+
[data-component="privacy-policy"] h2:first-of-type {
32+
margin-top: 2rem;
33+
}
34+
35+
[data-component="privacy-policy"] h3 {
36+
font-size: 1.25rem;
37+
font-weight: 600;
38+
color: var(--color-text-strong);
39+
margin-top: 2rem;
40+
margin-bottom: 1rem;
41+
}
42+
43+
[data-component="privacy-policy"] h4 {
44+
font-size: 1.1rem;
45+
font-weight: 600;
46+
color: var(--color-text-strong);
47+
margin-top: 1.5rem;
48+
margin-bottom: 0.75rem;
49+
}
50+
51+
[data-component="privacy-policy"] p {
52+
margin-bottom: 1rem;
53+
color: var(--color-text);
54+
}
55+
56+
[data-component="privacy-policy"] ul,
57+
[data-component="privacy-policy"] ol {
58+
margin-bottom: 1rem;
59+
padding-left: 1.5rem;
60+
color: var(--color-text);
61+
}
62+
63+
[data-component="privacy-policy"] li {
64+
margin-bottom: 0.5rem;
65+
line-height: 1.7;
66+
}
67+
68+
[data-component="privacy-policy"] ul ul,
69+
[data-component="privacy-policy"] ul ol,
70+
[data-component="privacy-policy"] ol ul,
71+
[data-component="privacy-policy"] ol ol {
72+
margin-top: 0.5rem;
73+
margin-bottom: 0.5rem;
74+
}
75+
76+
[data-component="privacy-policy"] a {
77+
color: var(--color-text-strong);
78+
text-decoration: underline;
79+
text-underline-offset: 2px;
80+
text-decoration-thickness: 1px;
81+
word-break: break-word;
82+
}
83+
84+
[data-component="privacy-policy"] a:hover {
85+
text-decoration-thickness: 2px;
86+
}
87+
88+
[data-component="privacy-policy"] strong {
89+
font-weight: 600;
90+
color: var(--color-text-strong);
91+
}
92+
93+
[data-component="privacy-policy"] .table-wrapper {
94+
overflow-x: auto;
95+
margin: 1.5rem 0;
96+
}
97+
98+
[data-component="privacy-policy"] table {
99+
width: 100%;
100+
border-collapse: collapse;
101+
border: 1px solid var(--color-border);
102+
}
103+
104+
[data-component="privacy-policy"] th,
105+
[data-component="privacy-policy"] td {
106+
padding: 0.75rem 1rem;
107+
text-align: left;
108+
border: 1px solid var(--color-border);
109+
vertical-align: top;
110+
}
111+
112+
[data-component="privacy-policy"] th {
113+
background: var(--color-background-weak);
114+
font-weight: 600;
115+
color: var(--color-text-strong);
116+
}
117+
118+
[data-component="privacy-policy"] td {
119+
color: var(--color-text);
120+
}
121+
122+
[data-component="privacy-policy"] td ul {
123+
margin: 0;
124+
padding-left: 1.25rem;
125+
}
126+
127+
[data-component="privacy-policy"] td li {
128+
margin-bottom: 0.25rem;
129+
}
130+
131+
/* Mobile responsiveness */
132+
@media (max-width: 60rem) {
133+
[data-component="privacy-policy"] {
134+
padding: 0;
135+
}
136+
137+
[data-component="privacy-policy"] h1 {
138+
font-size: 1.75rem;
139+
}
140+
141+
[data-component="privacy-policy"] h2 {
142+
font-size: 1.35rem;
143+
margin-top: 2.5rem;
144+
}
145+
146+
[data-component="privacy-policy"] h3 {
147+
font-size: 1.15rem;
148+
}
149+
150+
[data-component="privacy-policy"] h4 {
151+
font-size: 1rem;
152+
}
153+
154+
[data-component="privacy-policy"] table {
155+
font-size: 0.9rem;
156+
}
157+
158+
[data-component="privacy-policy"] th,
159+
[data-component="privacy-policy"] td {
160+
padding: 0.5rem 0.75rem;
161+
}
162+
}
163+
164+
html {
165+
scroll-behavior: smooth;
166+
}
167+
168+
[data-component="privacy-policy"] [id] {
169+
scroll-margin-top: 100px;
170+
}
171+
172+
@media print {
173+
@page {
174+
margin: 2cm;
175+
size: letter;
176+
}
177+
178+
[data-component="top"],
179+
[data-component="footer"],
180+
[data-component="legal"] {
181+
display: none !important;
182+
}
183+
184+
[data-page="legal"] {
185+
background: white !important;
186+
padding: 0 !important;
187+
}
188+
189+
[data-component="container"] {
190+
max-width: none !important;
191+
border: none !important;
192+
margin: 0 !important;
193+
}
194+
195+
[data-component="content"],
196+
[data-component="brand-content"] {
197+
padding: 0 !important;
198+
margin: 0 !important;
199+
}
200+
201+
[data-component="privacy-policy"] {
202+
max-width: none !important;
203+
margin: 0 !important;
204+
padding: 0 !important;
205+
}
206+
207+
[data-component="privacy-policy"] * {
208+
color: black !important;
209+
background: transparent !important;
210+
}
211+
212+
[data-component="privacy-policy"] h1 {
213+
font-size: 24pt;
214+
margin-top: 0;
215+
margin-bottom: 12pt;
216+
page-break-after: avoid;
217+
}
218+
219+
[data-component="privacy-policy"] h2 {
220+
font-size: 18pt;
221+
border-top: 2pt solid black !important;
222+
padding-top: 12pt;
223+
margin-top: 24pt;
224+
margin-bottom: 8pt;
225+
page-break-after: avoid;
226+
page-break-before: auto;
227+
}
228+
229+
[data-component="privacy-policy"] h2:first-of-type {
230+
margin-top: 16pt;
231+
}
232+
233+
[data-component="privacy-policy"] h3 {
234+
font-size: 14pt;
235+
margin-top: 16pt;
236+
margin-bottom: 8pt;
237+
page-break-after: avoid;
238+
}
239+
240+
[data-component="privacy-policy"] h4 {
241+
font-size: 12pt;
242+
margin-top: 12pt;
243+
margin-bottom: 6pt;
244+
page-break-after: avoid;
245+
}
246+
247+
[data-component="privacy-policy"] p {
248+
font-size: 11pt;
249+
line-height: 1.5;
250+
margin-bottom: 8pt;
251+
orphans: 3;
252+
widows: 3;
253+
}
254+
255+
[data-component="privacy-policy"] .effective-date {
256+
font-size: 10pt;
257+
margin-bottom: 16pt;
258+
}
259+
260+
[data-component="privacy-policy"] ul,
261+
[data-component="privacy-policy"] ol {
262+
margin-bottom: 8pt;
263+
page-break-inside: auto;
264+
}
265+
266+
[data-component="privacy-policy"] li {
267+
font-size: 11pt;
268+
line-height: 1.5;
269+
margin-bottom: 4pt;
270+
page-break-inside: avoid;
271+
}
272+
273+
[data-component="privacy-policy"] a {
274+
color: black !important;
275+
text-decoration: underline;
276+
}
277+
278+
[data-component="privacy-policy"] .table-wrapper {
279+
overflow: visible !important;
280+
margin: 12pt 0;
281+
}
282+
283+
[data-component="privacy-policy"] table {
284+
border: 2pt solid black !important;
285+
page-break-inside: avoid;
286+
width: 100% !important;
287+
font-size: 10pt;
288+
}
289+
290+
[data-component="privacy-policy"] th,
291+
[data-component="privacy-policy"] td {
292+
border: 1pt solid black !important;
293+
padding: 6pt 8pt !important;
294+
background: white !important;
295+
}
296+
297+
[data-component="privacy-policy"] th {
298+
background: #f0f0f0 !important;
299+
font-weight: bold;
300+
page-break-after: avoid;
301+
}
302+
303+
[data-component="privacy-policy"] tr {
304+
page-break-inside: avoid;
305+
}
306+
307+
[data-component="privacy-policy"] td ul {
308+
margin: 2pt 0;
309+
padding-left: 12pt;
310+
}
311+
312+
[data-component="privacy-policy"] td li {
313+
margin-bottom: 2pt;
314+
font-size: 9pt;
315+
}
316+
317+
[data-component="privacy-policy"] strong {
318+
font-weight: bold;
319+
color: black !important;
320+
}
321+
322+
[data-component="privacy-policy"] h1,
323+
[data-component="privacy-policy"] h2,
324+
[data-component="privacy-policy"] h3,
325+
[data-component="privacy-policy"] h4 {
326+
page-break-inside: avoid;
327+
page-break-after: avoid;
328+
}
329+
330+
[data-component="privacy-policy"] h2 + p,
331+
[data-component="privacy-policy"] h3 + p,
332+
[data-component="privacy-policy"] h4 + p,
333+
[data-component="privacy-policy"] h2 + ul,
334+
[data-component="privacy-policy"] h3 + ul,
335+
[data-component="privacy-policy"] h4 + ul {
336+
page-break-before: avoid;
337+
}
338+
339+
[data-component="privacy-policy"] table,
340+
[data-component="privacy-policy"] .table-wrapper {
341+
page-break-inside: avoid;
342+
}
343+
}

0 commit comments

Comments
 (0)