Merge branch 'feature/caller-redesign' into main
Brings in the Phase 5B caller-generation rewrite: - Slim two-stage pipeline: Sonnet 4.6 batch identity pregen at session start, Haiku 4.5 live dialog per turn. Deletes CallerBackground dataclass, shape/style/voice-matching, per-model routing, preflight UI. - New caller_gen.py (slim prompt builder) and regulars_v2.py (Obsidian lore loader for named recurring callers). - Reworked caller buttons and info panel around the slim background: identity, situation, signature, secret want. Removes shape badges, energy dots, emotion info-badges. - Inworld TTS: emotional_register -> (temperature, speed_adjust) mapping via _emotional_register_to_params(). applyTextNormalization ON. - Silas identity/voice leak fix, avatar gender, pre-warm batch gen. - Archives old regulars to data/regulars.archived.json, adds 10 sample caller transcripts under docs/samples/. Post-merge fixes applied during resolution: - intern.py: kept main's richer new_show() (NEW SHOW history marker, trim, _save()) and _track_suggestion(); removed the branch's duplicate minimal new_show() stub. - tts.py: added 5 voice speed overrides (Graham, Malcolm, Victoria, Loretta, Marlene) that main had tuned locally. Evelyn deliberately NOT added to VOICE_PROFILES — she is in BLACKLISTED_VOICES for unnatural prosody. - Main's cost dashboard polish, LLM per-model params, and Devon show context memory from commits c087c03..61b3cba carried through cleanly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+14
-218
@@ -335,25 +335,6 @@ section h2 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.energy-dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.shape-badge {
|
||||
font-size: 0.6rem;
|
||||
background: rgba(232, 121, 29, 0.25);
|
||||
color: var(--accent);
|
||||
padding: 1px 4px;
|
||||
border-radius: 3px;
|
||||
font-weight: bold;
|
||||
letter-spacing: 0.5px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.caller-btn:hover {
|
||||
border-color: var(--accent);
|
||||
background: #2a1e10;
|
||||
@@ -452,20 +433,19 @@ section h2 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.info-badge.shape {
|
||||
background: rgba(232, 121, 29, 0.2);
|
||||
color: var(--accent);
|
||||
.caller-identity {
|
||||
font-size: 0.85rem;
|
||||
color: var(--text);
|
||||
font-weight: 600;
|
||||
margin-bottom: 4px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.info-badge.energy {
|
||||
color: white;
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
|
||||
.info-badge.emotion {
|
||||
background: rgba(154, 139, 120, 0.2);
|
||||
.caller-situation {
|
||||
font-size: 0.8rem;
|
||||
color: var(--text-muted);
|
||||
font-style: italic;
|
||||
margin-bottom: 4px;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.caller-signature {
|
||||
@@ -475,90 +455,13 @@ section h2 {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.caller-situation {
|
||||
font-size: 0.8rem;
|
||||
color: var(--text-muted);
|
||||
.caller-secret-want {
|
||||
font-size: 0.75rem;
|
||||
color: #d4a030;
|
||||
font-style: italic;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* Caller model indicator */
|
||||
.info-badge.model {
|
||||
background: rgba(100, 140, 220, 0.2);
|
||||
color: #7ab0e8;
|
||||
font-size: 0.7rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.caller-model-override {
|
||||
font-size: 0.7rem;
|
||||
padding: 2px 4px;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
border: 1px solid rgba(100, 140, 220, 0.3);
|
||||
border-radius: 4px;
|
||||
max-width: 140px;
|
||||
}
|
||||
|
||||
/* Caller button model badge */
|
||||
.model-tag {
|
||||
font-size: 0.55rem;
|
||||
color: #7ab0e8;
|
||||
background: rgba(100, 140, 220, 0.15);
|
||||
padding: 0 3px;
|
||||
border-radius: 2px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.3px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* Caller Models settings section */
|
||||
.caller-model-row {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.caller-model-row label {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.cm-pool-input {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.cm-style-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 4px;
|
||||
margin-bottom: 8px;
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.cm-style-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 4px;
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border-radius: 4px;
|
||||
padding: 3px 6px;
|
||||
}
|
||||
|
||||
.cm-style-name {
|
||||
font-size: 0.7rem;
|
||||
color: var(--text-muted);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.cm-style-select {
|
||||
font-size: 0.7rem;
|
||||
padding: 2px 3px;
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
border: 1px solid rgba(232, 121, 29, 0.15);
|
||||
border-radius: 4px;
|
||||
max-width: 110px;
|
||||
}
|
||||
|
||||
.caller-background-full {
|
||||
margin-top: 8px;
|
||||
font-size: 0.75rem;
|
||||
@@ -1947,110 +1850,3 @@ button:focus-visible {
|
||||
.log-toggle-btn:hover {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
/* Preflight */
|
||||
.preflight-btn {
|
||||
background: rgba(90, 138, 60, 0.15);
|
||||
color: var(--accent-green);
|
||||
border: 1px solid rgba(90, 138, 60, 0.3);
|
||||
}
|
||||
.preflight-btn:hover {
|
||||
background: rgba(90, 138, 60, 0.25);
|
||||
}
|
||||
|
||||
.preflight-content {
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
.preflight-status {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 12px 16px;
|
||||
border-radius: var(--radius-sm);
|
||||
margin-bottom: 16px;
|
||||
font-weight: 700;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
.preflight-status.pass { background: rgba(90, 138, 60, 0.15); color: var(--accent-green); }
|
||||
.preflight-status.warn { background: rgba(232, 169, 29, 0.15); color: #e8a91d; }
|
||||
.preflight-status.fail { background: rgba(204, 34, 34, 0.15); color: var(--accent-red); }
|
||||
.preflight-status.loading { background: rgba(232, 121, 29, 0.1); color: var(--text-muted); }
|
||||
|
||||
.preflight-checks {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
max-height: 60vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.preflight-check {
|
||||
background: var(--bg);
|
||||
border: 1px solid rgba(232, 121, 29, 0.1);
|
||||
border-radius: var(--radius-sm);
|
||||
padding: 12px 16px;
|
||||
}
|
||||
.preflight-check-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
.preflight-check-name {
|
||||
font-weight: 600;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
.preflight-check-badge {
|
||||
font-size: 0.75rem;
|
||||
font-weight: 700;
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.preflight-check-badge.pass { background: rgba(90, 138, 60, 0.2); color: var(--accent-green); }
|
||||
.preflight-check-badge.warn { background: rgba(232, 169, 29, 0.2); color: #e8a91d; }
|
||||
.preflight-check-badge.fail { background: rgba(204, 34, 34, 0.2); color: var(--accent-red); }
|
||||
.preflight-check-badge.skip { background: rgba(154, 139, 120, 0.2); color: var(--text-muted); }
|
||||
|
||||
.preflight-check-details {
|
||||
margin-top: 10px;
|
||||
font-size: 0.85rem;
|
||||
color: var(--text-muted);
|
||||
display: none;
|
||||
}
|
||||
.preflight-check.open .preflight-check-details {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.preflight-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 8px;
|
||||
}
|
||||
.preflight-table th {
|
||||
text-align: left;
|
||||
color: var(--text-muted);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
padding: 4px 8px;
|
||||
border-bottom: 1px solid rgba(232, 121, 29, 0.1);
|
||||
}
|
||||
.preflight-table td {
|
||||
padding: 4px 8px;
|
||||
font-size: 0.8rem;
|
||||
color: var(--text);
|
||||
border-bottom: 1px solid rgba(232, 121, 29, 0.05);
|
||||
}
|
||||
.preflight-table tr.mismatch td { color: var(--accent-red); }
|
||||
.preflight-table tr.connected td { color: var(--accent-green); }
|
||||
|
||||
.preflight-test-btn {
|
||||
background: rgba(232, 121, 29, 0.15);
|
||||
color: var(--accent);
|
||||
border: 1px solid rgba(232, 121, 29, 0.3);
|
||||
}
|
||||
.preflight-test-btn:hover { background: rgba(232, 121, 29, 0.25); }
|
||||
.preflight-test-btn.loading { opacity: 0.6; pointer-events: none; }
|
||||
|
||||
Reference in New Issue
Block a user