fix: remove dead delete+recreate and pin code, add poll fallback test
Phase 1 cleanup: - Remove deletePost() method (dead code, replaced by PUT in-place updates) - Remove _postInfo Map tracking (no longer needed) - Remove pin/unpin API calls from watcher-manager.js (incompatible with PUT updates) - Add JSDoc note on (edited) label limitation in _flushUpdate() - Add integration test: test/integration/poll-fallback.test.js - Fix addSession() lastOffset===0 falsy bug (0 was treated as 'no offset') - Fix pre-existing test failures: add lastOffset:0 where tests expect backlog reads - Fix pre-existing session-monitor test: create stub transcript files - Fix pre-existing status-formatter test: update indent check for blockquote format - Format plugin/ files with Prettier (pre-existing formatting drift)
This commit is contained in:
197
plugin/webapp/src/styles/live_status.css
Normal file
197
plugin/webapp/src/styles/live_status.css
Normal file
@@ -0,0 +1,197 @@
|
||||
/* OpenClaw Live Status — Post Type Styles */
|
||||
|
||||
.ls-post {
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
.ls-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 8px 12px;
|
||||
background: var(--center-channel-bg, #fff);
|
||||
border-bottom: 1px solid var(--center-channel-color-08, rgba(0, 0, 0, 0.08));
|
||||
}
|
||||
|
||||
.ls-agent-badge {
|
||||
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
padding: 2px 8px;
|
||||
border-radius: 10px;
|
||||
background: var(--button-bg, #166de0);
|
||||
color: var(--button-color, #fff);
|
||||
}
|
||||
|
||||
.ls-child-badge {
|
||||
font-size: 11px;
|
||||
background: var(--center-channel-color-24, rgba(0, 0, 0, 0.24));
|
||||
}
|
||||
|
||||
.ls-status-badge {
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
padding: 2px 6px;
|
||||
border-radius: 3px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.ls-status-active .ls-status-badge {
|
||||
background: #e8f5e9;
|
||||
color: #2e7d32;
|
||||
}
|
||||
|
||||
.ls-status-done .ls-status-badge {
|
||||
background: #e3f2fd;
|
||||
color: #1565c0;
|
||||
}
|
||||
|
||||
.ls-status-error .ls-status-badge {
|
||||
background: #fbe9e7;
|
||||
color: #c62828;
|
||||
}
|
||||
|
||||
.ls-status-interrupted .ls-status-badge {
|
||||
background: #fff3e0;
|
||||
color: #e65100;
|
||||
}
|
||||
|
||||
.ls-elapsed {
|
||||
font-size: 12px;
|
||||
color: var(--center-channel-color-56, rgba(0, 0, 0, 0.56));
|
||||
margin-left: auto;
|
||||
font-family: 'SFMono-Regular', Consolas, monospace;
|
||||
}
|
||||
|
||||
/* Live dot — pulsing green indicator */
|
||||
.ls-live-dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background: #4caf50;
|
||||
animation: ls-pulse 1.5s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes ls-pulse {
|
||||
0%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
50% {
|
||||
opacity: 0.5;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
}
|
||||
|
||||
/* Terminal view */
|
||||
.ls-terminal {
|
||||
max-height: 400px;
|
||||
overflow-y: auto;
|
||||
padding: 8px 12px;
|
||||
background: var(--center-channel-color-04, rgba(0, 0, 0, 0.04));
|
||||
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
||||
font-size: 12px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
/* Status lines */
|
||||
.ls-status-line {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.ls-tool-call {
|
||||
color: var(--center-channel-color, #3d3c40);
|
||||
}
|
||||
|
||||
.ls-tool-name {
|
||||
color: var(--link-color, #2389d7);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ls-tool-args {
|
||||
color: var(--center-channel-color-72, rgba(0, 0, 0, 0.72));
|
||||
}
|
||||
|
||||
.ls-marker-ok {
|
||||
color: #4caf50;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ls-marker-err {
|
||||
color: #f44336;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ls-thinking {
|
||||
color: var(--center-channel-color-48, rgba(0, 0, 0, 0.48));
|
||||
}
|
||||
|
||||
.ls-thinking-prefix {
|
||||
color: var(--center-channel-color-24, rgba(0, 0, 0, 0.24));
|
||||
}
|
||||
|
||||
/* Children (sub-agents) */
|
||||
.ls-children {
|
||||
border-top: 1px solid var(--center-channel-color-08, rgba(0, 0, 0, 0.08));
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.ls-child {
|
||||
margin: 0 12px;
|
||||
border-left: 2px solid var(--center-channel-color-16, rgba(0, 0, 0, 0.16));
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
.ls-child-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 4px 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.ls-expand-icon {
|
||||
font-size: 10px;
|
||||
color: var(--center-channel-color-48, rgba(0, 0, 0, 0.48));
|
||||
width: 12px;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
.ls-footer {
|
||||
padding: 4px 12px 8px;
|
||||
font-size: 11px;
|
||||
color: var(--center-channel-color-48, rgba(0, 0, 0, 0.48));
|
||||
font-family: 'SFMono-Regular', Consolas, monospace;
|
||||
}
|
||||
|
||||
/* Loading state */
|
||||
.ls-loading {
|
||||
padding: 12px;
|
||||
color: var(--center-channel-color-48, rgba(0, 0, 0, 0.48));
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* Scrollbar styling */
|
||||
.ls-terminal::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.ls-terminal::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.ls-terminal::-webkit-scrollbar-thumb {
|
||||
background: var(--center-channel-color-16, rgba(0, 0, 0, 0.16));
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.ls-terminal::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--center-channel-color-32, rgba(0, 0, 0, 0.32));
|
||||
}
|
||||
Reference in New Issue
Block a user