From 4443c8064fb8e624795789f441ad627f32dcc0ae Mon Sep 17 00:00:00 2001 From: gramps Date: Mon, 13 Jul 2026 10:11:01 -0700 Subject: [PATCH] v0.17.21: dot-matrix sprocket holes on outer edges + paper grain background --- config.py | 2 +- templates/index.html | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/config.py b/config.py index 5dc3031..c56b5c7 100644 --- a/config.py +++ b/config.py @@ -9,7 +9,7 @@ import logging log = logging.getLogger("caic") -VERSION = "v0.17.20" +VERSION = "v0.17.21" OLLAMA_BASE = os.environ.get("OLLAMA_BASE", "http://localhost:11434") LLAMA_SERVER_BASE = os.environ.get("LLAMA_SERVER_BASE", "http://192.168.50.108:8081") SEARXNG_BASE = "http://localhost:8888" diff --git a/templates/index.html b/templates/index.html index 08e3b89..b0083cf 100644 --- a/templates/index.html +++ b/templates/index.html @@ -78,8 +78,11 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var( .cluster-dot.error { background:var(--danger); } .cluster-dot.offline { background:var(--danger); } -.main { flex:1; display:flex; flex-direction:column; height:100vh; min-width:0; } -.topbar { display:flex; align-items:center; justify-content:space-between; padding:8px 16px; border-bottom:1px solid var(--border); background:var(--bg-secondary); flex-shrink:0; gap:12px; } +.main { flex:1; display:flex; flex-direction:column; height:100vh; min-width:0; position:relative; } +.main::before, .main::after { content:''; position:absolute; top:0; bottom:0; width:22px; z-index:1; pointer-events:none; background:var(--bg-secondary); background-image:radial-gradient(circle at 11px 14px, rgba(0,0,0,0.12) 2px, transparent 2px),radial-gradient(circle at 11px 14px, transparent 4px, var(--bg-secondary) 4.5px); background-size:22px 28px; background-repeat:repeat-y; border:1px solid var(--border); } +.main::before { left:0; border-left:none; border-radius:0 4px 4px 0; box-shadow:2px 0 4px rgba(0,0,0,0.06); } +.main::after { right:0; border-right:none; border-radius:4px 0 0 4px; box-shadow:-2px 0 4px rgba(0,0,0,0.06); } +.topbar { display:flex; align-items:center; justify-content:space-between; padding:8px 28px; border-bottom:1px solid var(--border); background:var(--bg-secondary); flex-shrink:0; gap:12px; } .topbar-left { display:flex; align-items:center; gap:10px; min-width:0; } .topbar-center { display:flex; align-items:center; gap:12px; font-size:12px; font-family:var(--font-mono); color:var(--text-muted); } .tc-item { white-space:nowrap; } @@ -147,7 +150,7 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var( .skill-risk { display:inline-block; margin-left:8px; padding:1px 6px; border-radius:10px; font-size:10px; text-transform:uppercase; border:1px solid var(--border); color:var(--text-secondary); } .skill-item.disabled .skill-meta { opacity:0.6; } -.chat-container { flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:8px; } +.chat-container { flex:1; overflow-y:auto; padding:20px 30px; display:flex; flex-direction:column; gap:8px; background-image:radial-gradient(rgba(255,255,255,0.015) 1px, transparent 1px); background-size:24px 24px; } .msg-pair { display:flex; flex-direction:column; gap:8px; border-radius:var(--radius); padding:12px 12px 8px; border-left:3px solid transparent; } .msg-pair:nth-child(odd) { background:rgba(255,255,255,0.015); border-left-color:rgba(0,136,187,0.25); } .msg-pair:nth-child(even) { background:rgba(255,255,255,0.035); border-left-color:rgba(243,156,18,0.25); } @@ -200,7 +203,7 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var( .msg-toolbar .sep { width:1px; height:14px; background:var(--border); margin:0 4px; } .msg-toolbar .toolbar-label { font-size:10px; font-family:var(--font-mono); color:var(--text-muted); margin-right:4px; } -.input-area { padding:16px 20px; border-top:1px solid var(--border); background:var(--bg-secondary); } +.input-area { padding:16px 28px; border-top:1px solid var(--border); background:var(--bg-secondary); } .input-row { max-width:900px; margin:0 auto; display:flex; gap:10px; align-items:flex-end; } .input-row textarea { flex:1; background:var(--bg-tertiary); border:1px solid var(--border); color:var(--text-primary); font-family:var(--font-body); font-size:14px; padding:12px 14px; border-radius:var(--radius); resize:none; min-height:44px; max-height:200px; line-height:1.5; } .input-row textarea:focus { outline:none; border-color:var(--accent-dim); } @@ -258,9 +261,9 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var( .raw-results small { color:var(--text-muted); display:block; margin-top:2px; } @media (max-width:768px) { - .topbar { padding:10px 14px; } - .chat-container { padding:12px; } - .input-area { padding:10px 12px; } + .topbar { padding:10px 32px; } + .chat-container { padding:12px 28px; } + .input-area { padding:10px 28px; } } .auth-screen { position: fixed; inset: 0; width: 100%; height: 100vh; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,0.62); z-index: 3000; }