Add worktrees, per-hunk review, effort per message, regenerate, voice input

- Isolated git worktree per session (create, status, merge, discard)
- Permission card: accept file-edit hunks individually; agent learns what was rejected
- Reasoning effort per message; regenerate the last answer with another model/effort
- Voice input via the Web Speech API
- Folder-up button in the file browser; ssh, rsync and mc in the image

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard ZinkandClaude Opus 5.5 committed 2026-11-08 22:29:58 +01:00
1 parent df1924b0a1
commit fca1c41087
22 files changed
+821 -32

No files matched your search

+98
View File
@@ -1555,6 +1555,18 @@ a.button.small {
font-size: 12.5px;
color: var(--muted);
word-break: break-all;
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 2px;
}
.crumbs-up {
margin-right: 6px;
padding: 3px 8px;
}
.crumbs-up .icon {
width: 18px;
height: 18px;
}
.entries {
flex: 1;
@@ -2942,3 +2954,89 @@ button.danger-solid {
.chip.ok {
color: var(--green);
}
/* --- worktree ------------------------------------------------------------------- */
.wt-wrap {
position: relative;
}
.wt-chip {
border: 1px solid var(--accent);
color: var(--accent);
cursor: pointer;
}
.wt-panel {
width: 340px;
padding: 12px;
gap: 6px;
}
.wt-stats {
display: flex;
flex-wrap: wrap;
gap: 10px;
font-size: 13px;
}
.wt-log {
font-size: 12px;
background: var(--bg0);
padding: 6px 8px;
border-radius: 6px;
max-height: 140px;
overflow: auto;
margin: 0;
}
.menu-pop-body a .icon {
margin-right: 6px;
}
.wiz-check-row {
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
}
/* --- per-hunk review ----------------------------------------------------------- */
.hunk-block {
border-top: 1px dashed var(--bg3);
}
.hunk-block.off > div {
opacity: 0.35;
text-decoration: line-through;
}
.hunk-head {
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
color: var(--blue);
background: var(--bg1);
padding: 2px 6px;
}
/* --- regenerate / effort --------------------------------------------------------- */
.regen {
margin-top: 6px;
}
.regen > button {
opacity: 0.7;
}
.regen > button:hover {
opacity: 1;
}
.regen-panel {
margin-top: 6px;
padding: 10px;
border: 1px solid var(--bg3);
border-radius: var(--radius);
background: var(--bg1);
display: flex;
flex-direction: column;
gap: 8px;
}
.effort-select {
max-width: 150px;
}
.voice-btn.on {
color: var(--red);
animation: glow 1.2s ease-in-out infinite;
}