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:
sol
2026-03-07 20:31:32 +00:00
parent cc485f0009
commit 868574d939
31 changed files with 3596 additions and 68 deletions

View 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));
}