@codemem/server 0.44.0-beta.1 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +464 -45
- package/dist/index.js.map +1 -1
- package/dist/routes/diagnostics.d.ts +31 -0
- package/dist/routes/diagnostics.d.ts.map +1 -0
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/pack.d.ts.map +1 -1
- package/dist/routes/stats.d.ts.map +1 -1
- package/package.json +2 -2
- package/static/app.js +41 -41
- package/static/app.js.br +0 -0
- package/static/app.js.gz +0 -0
- package/static/index.html +182 -19
package/static/app.js.br
CHANGED
|
Binary file
|
package/static/app.js.gz
CHANGED
|
Binary file
|
package/static/index.html
CHANGED
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
*, *::before, *::after { box-sizing: border-box; margin: 0; }
|
|
44
44
|
|
|
45
45
|
body {
|
|
46
|
+
--header-sticky-offset: 73px;
|
|
46
47
|
font-family: var(--font-sans);
|
|
47
48
|
font-size: var(--font-size-base);
|
|
48
49
|
line-height: 1.55;
|
|
@@ -108,6 +109,8 @@
|
|
|
108
109
|
display: flex;
|
|
109
110
|
align-items: center;
|
|
110
111
|
gap: var(--sp-3);
|
|
112
|
+
min-width: 0;
|
|
113
|
+
overflow: hidden;
|
|
111
114
|
}
|
|
112
115
|
|
|
113
116
|
.logo {
|
|
@@ -127,7 +130,10 @@
|
|
|
127
130
|
font-size: var(--font-size-2xl);
|
|
128
131
|
font-weight: var(--font-weight-semibold);
|
|
129
132
|
letter-spacing: -0.01em;
|
|
133
|
+
min-width: 0;
|
|
130
134
|
white-space: nowrap;
|
|
135
|
+
overflow: hidden;
|
|
136
|
+
text-overflow: ellipsis;
|
|
131
137
|
}
|
|
132
138
|
|
|
133
139
|
.health-dot {
|
|
@@ -144,6 +150,7 @@
|
|
|
144
150
|
display: flex;
|
|
145
151
|
align-items: center;
|
|
146
152
|
gap: var(--sp-2);
|
|
153
|
+
min-width: 0;
|
|
147
154
|
}
|
|
148
155
|
|
|
149
156
|
/* Diagnostic metadata cluster: runtime version + database path. Grouped
|
|
@@ -194,7 +201,7 @@
|
|
|
194
201
|
-webkit-backdrop-filter: blur(10px) saturate(1.2);
|
|
195
202
|
border-bottom: 1px solid var(--border);
|
|
196
203
|
position: sticky;
|
|
197
|
-
top:
|
|
204
|
+
top: var(--header-sticky-offset);
|
|
198
205
|
z-index: 9;
|
|
199
206
|
}
|
|
200
207
|
|
|
@@ -229,7 +236,7 @@
|
|
|
229
236
|
.tab-btn.active::after {
|
|
230
237
|
content: "";
|
|
231
238
|
position: absolute;
|
|
232
|
-
bottom:
|
|
239
|
+
bottom: 0;
|
|
233
240
|
left: var(--sp-4);
|
|
234
241
|
right: var(--sp-4);
|
|
235
242
|
height: 2px;
|
|
@@ -3241,6 +3248,146 @@
|
|
|
3241
3248
|
@media (max-height: 720px) { .modal { align-items: flex-start; } }
|
|
3242
3249
|
.modal-backdrop[hidden], .modal[hidden] { display: none; }
|
|
3243
3250
|
|
|
3251
|
+
/* ── Contextual diagnostics drawer ─────────────────────── */
|
|
3252
|
+
.diagnostics-drawer-overlay {
|
|
3253
|
+
position: fixed;
|
|
3254
|
+
inset: 0;
|
|
3255
|
+
z-index: 45;
|
|
3256
|
+
background: rgba(25, 24, 23, 0.42);
|
|
3257
|
+
backdrop-filter: blur(4px);
|
|
3258
|
+
animation: diagnosticsOverlayIn var(--duration-fast) var(--ease-standard);
|
|
3259
|
+
}
|
|
3260
|
+
.diagnostics-drawer {
|
|
3261
|
+
position: fixed;
|
|
3262
|
+
inset: 0 0 0 auto;
|
|
3263
|
+
z-index: 46;
|
|
3264
|
+
width: clamp(420px, 42vw, 640px);
|
|
3265
|
+
display: flex;
|
|
3266
|
+
flex-direction: column;
|
|
3267
|
+
gap: var(--sp-3);
|
|
3268
|
+
padding: var(--sp-5);
|
|
3269
|
+
border-left: 1px solid var(--border);
|
|
3270
|
+
background: var(--surface-1);
|
|
3271
|
+
box-shadow: var(--shadow-lg);
|
|
3272
|
+
color: var(--text-primary);
|
|
3273
|
+
animation: diagnosticsDrawerIn var(--duration-fast) var(--ease-standard);
|
|
3274
|
+
}
|
|
3275
|
+
.diagnostics-drawer-header,
|
|
3276
|
+
.diagnostics-secondary-controls,
|
|
3277
|
+
.diagnostics-notice,
|
|
3278
|
+
.diagnostics-event-heading,
|
|
3279
|
+
.diagnostics-event-context {
|
|
3280
|
+
display: flex;
|
|
3281
|
+
align-items: center;
|
|
3282
|
+
justify-content: space-between;
|
|
3283
|
+
gap: var(--sp-3);
|
|
3284
|
+
}
|
|
3285
|
+
.diagnostics-drawer-header { flex-shrink: 0; align-items: flex-start; }
|
|
3286
|
+
.diagnostics-drawer-header h2 { margin: 0; font-size: var(--font-size-2xl); }
|
|
3287
|
+
.diagnostics-drawer-header p { margin-top: var(--sp-1); color: var(--text-secondary); }
|
|
3288
|
+
.diagnostics-controls {
|
|
3289
|
+
display: grid;
|
|
3290
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
|
|
3291
|
+
gap: var(--sp-2);
|
|
3292
|
+
align-items: end;
|
|
3293
|
+
flex-shrink: 0;
|
|
3294
|
+
}
|
|
3295
|
+
.diagnostics-controls label { display: grid; gap: 5px; color: var(--text-secondary); font-size: var(--font-size-sm); }
|
|
3296
|
+
.diagnostics-controls select {
|
|
3297
|
+
width: 100%;
|
|
3298
|
+
min-height: 36px;
|
|
3299
|
+
border: 1px solid var(--border);
|
|
3300
|
+
border-radius: var(--radius-md);
|
|
3301
|
+
padding: 6px 10px;
|
|
3302
|
+
background: var(--input-bg);
|
|
3303
|
+
color: var(--text-primary);
|
|
3304
|
+
}
|
|
3305
|
+
.diagnostics-controls select:focus-visible,
|
|
3306
|
+
.diagnostics-new-events:focus-visible,
|
|
3307
|
+
.diagnostics-recovery:focus-visible {
|
|
3308
|
+
outline: 2px solid var(--accent);
|
|
3309
|
+
outline-offset: 2px;
|
|
3310
|
+
box-shadow: 0 0 0 4px var(--focus-ring);
|
|
3311
|
+
}
|
|
3312
|
+
.diagnostics-secondary-controls { flex-shrink: 0; }
|
|
3313
|
+
.diagnostics-secondary-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
|
|
3314
|
+
.diagnostics-copy-status { min-height: 1.25em; color: var(--text-secondary); font-size: var(--font-size-sm); }
|
|
3315
|
+
.diagnostics-generated-at,
|
|
3316
|
+
.diagnostics-limit-note,
|
|
3317
|
+
.diagnostics-filter-context { color: var(--text-tertiary); font-size: var(--font-size-sm); }
|
|
3318
|
+
.diagnostics-notice {
|
|
3319
|
+
border: 1px solid var(--border);
|
|
3320
|
+
border-radius: var(--radius-md);
|
|
3321
|
+
padding: var(--sp-2) var(--sp-3);
|
|
3322
|
+
background: var(--surface-2);
|
|
3323
|
+
color: var(--text-secondary);
|
|
3324
|
+
flex-shrink: 0;
|
|
3325
|
+
}
|
|
3326
|
+
.diagnostics-notice--error { border-color: color-mix(in srgb, var(--status-attention) 42%, var(--border)); }
|
|
3327
|
+
.diagnostics-new-events {
|
|
3328
|
+
align-self: center;
|
|
3329
|
+
border: 1px solid var(--accent);
|
|
3330
|
+
border-radius: var(--radius-pill);
|
|
3331
|
+
padding: 7px 14px;
|
|
3332
|
+
background: var(--accent-subtle);
|
|
3333
|
+
color: var(--text-primary);
|
|
3334
|
+
cursor: pointer;
|
|
3335
|
+
font: inherit;
|
|
3336
|
+
font-weight: var(--font-weight-semibold);
|
|
3337
|
+
}
|
|
3338
|
+
.diagnostics-event-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
|
|
3339
|
+
.diagnostics-event-list ul { display: grid; gap: var(--sp-2); margin: 0; padding: 0; list-style: none; }
|
|
3340
|
+
.diagnostics-event {
|
|
3341
|
+
display: grid;
|
|
3342
|
+
gap: var(--sp-2);
|
|
3343
|
+
border: 1px solid var(--border);
|
|
3344
|
+
border-left-width: 3px;
|
|
3345
|
+
border-radius: var(--radius-md);
|
|
3346
|
+
padding: var(--sp-3);
|
|
3347
|
+
background: var(--surface-0);
|
|
3348
|
+
}
|
|
3349
|
+
.diagnostics-event--info { border-left-color: var(--accent); }
|
|
3350
|
+
.diagnostics-event--warning { border-left-color: var(--status-degraded); }
|
|
3351
|
+
.diagnostics-event--error { border-left-color: var(--status-attention); }
|
|
3352
|
+
.diagnostics-event-heading time,
|
|
3353
|
+
.diagnostics-event-context,
|
|
3354
|
+
.diagnostics-event-meta { color: var(--text-tertiary); font-size: var(--font-size-sm); }
|
|
3355
|
+
.diagnostics-event-context { justify-content: flex-start; flex-wrap: wrap; }
|
|
3356
|
+
.diagnostics-event-context span { text-transform: capitalize; }
|
|
3357
|
+
.diagnostics-event p { margin: 0; line-height: 1.5; }
|
|
3358
|
+
.diagnostics-severity { display: inline-flex; align-items: center; gap: 6px; font-weight: var(--font-weight-semibold); }
|
|
3359
|
+
.diagnostics-severity-icon {
|
|
3360
|
+
display: inline-grid;
|
|
3361
|
+
place-items: center;
|
|
3362
|
+
width: 20px;
|
|
3363
|
+
height: 20px;
|
|
3364
|
+
border: 1px solid currentColor;
|
|
3365
|
+
border-radius: 50%;
|
|
3366
|
+
font-weight: var(--font-weight-semibold);
|
|
3367
|
+
}
|
|
3368
|
+
.diagnostics-technical-detail pre,
|
|
3369
|
+
.diagnostics-recovery-command code { white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
3370
|
+
.diagnostics-technical-detail pre { margin: var(--sp-2) 0 0; color: var(--text-secondary); }
|
|
3371
|
+
.diagnostics-recovery { color: var(--accent); font-weight: var(--font-weight-semibold); width: fit-content; }
|
|
3372
|
+
.diagnostics-recovery-command { display: grid; gap: 4px; color: var(--text-secondary); }
|
|
3373
|
+
.diagnostics-empty { display: grid; place-items: center; gap: var(--sp-3); min-height: 220px; text-align: center; color: var(--text-secondary); }
|
|
3374
|
+
.diagnostics-loading { display: grid; gap: var(--sp-2); }
|
|
3375
|
+
.diagnostics-loading-row { display: grid; gap: var(--sp-2); padding: var(--sp-3); border: 1px solid var(--border); border-radius: var(--radius-md); }
|
|
3376
|
+
.diagnostics-loading-row span { height: 10px; border-radius: var(--radius-pill); background: var(--surface-2); animation: pulse var(--duration-pulse) var(--ease-standard) infinite; }
|
|
3377
|
+
.diagnostics-loading-row span:nth-child(2) { width: 64%; }
|
|
3378
|
+
.diagnostics-loading-row span:nth-child(3) { width: 82%; }
|
|
3379
|
+
.diagnostics-load-older { display: block; margin: var(--sp-3) auto 0; }
|
|
3380
|
+
.diagnostics-limit-note { padding: var(--sp-3); text-align: center; }
|
|
3381
|
+
@keyframes diagnosticsOverlayIn { from { opacity: 0; } to { opacity: 1; } }
|
|
3382
|
+
@keyframes diagnosticsDrawerIn { from { transform: translateX(24px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
|
|
3383
|
+
|
|
3384
|
+
@media (max-width: 699px) {
|
|
3385
|
+
.diagnostics-drawer { inset: 0; width: 100vw; padding: var(--sp-4); border-left: 0; }
|
|
3386
|
+
.diagnostics-controls { grid-template-columns: 1fr 1fr; }
|
|
3387
|
+
.diagnostics-controls > button { grid-column: 1 / -1; }
|
|
3388
|
+
.diagnostics-secondary-controls { align-items: flex-start; flex-direction: column; }
|
|
3389
|
+
}
|
|
3390
|
+
|
|
3244
3391
|
.legacy-upgrade-modal .modal-card { width: min(620px, 100%); }
|
|
3245
3392
|
.legacy-upgrade-summary {
|
|
3246
3393
|
padding: var(--sp-3);
|
|
@@ -3476,6 +3623,7 @@
|
|
|
3476
3623
|
color: var(--text-secondary);
|
|
3477
3624
|
font-size: var(--font-size-sm);
|
|
3478
3625
|
}
|
|
3626
|
+
.viewer-reconnect-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
|
|
3479
3627
|
.viewer-reconnect-spinner {
|
|
3480
3628
|
width: 14px;
|
|
3481
3629
|
height: 14px;
|
|
@@ -3954,6 +4102,24 @@
|
|
|
3954
4102
|
/* ── Responsive ────────────────────────────────────────── */
|
|
3955
4103
|
|
|
3956
4104
|
@media (max-width: 900px) {
|
|
4105
|
+
.header-row { flex-wrap: nowrap; }
|
|
4106
|
+
.header-right { flex: 1 1 auto; justify-content: flex-end; }
|
|
4107
|
+
/* Diagnostic metadata yields before project scope or controls clip. */
|
|
4108
|
+
.header-tertiary { display: none; }
|
|
4109
|
+
.header-right .project-filter {
|
|
4110
|
+
flex: 1 1 140px;
|
|
4111
|
+
min-width: 96px;
|
|
4112
|
+
max-width: 240px;
|
|
4113
|
+
}
|
|
4114
|
+
/* Keep navigation to one compact row while preserving every destination. */
|
|
4115
|
+
.tab-bar {
|
|
4116
|
+
overflow-x: auto;
|
|
4117
|
+
overscroll-behavior-inline: contain;
|
|
4118
|
+
-webkit-overflow-scrolling: touch;
|
|
4119
|
+
scrollbar-width: none;
|
|
4120
|
+
}
|
|
4121
|
+
.tab-bar::-webkit-scrollbar { display: none; }
|
|
4122
|
+
.tab-btn { flex-shrink: 0; }
|
|
3957
4123
|
.tab-panel { padding: var(--sp-4); }
|
|
3958
4124
|
.summary-row { grid-template-columns: 1fr; }
|
|
3959
4125
|
.feed-card-header { flex-wrap: wrap; }
|
|
@@ -3971,23 +4137,15 @@
|
|
|
3971
4137
|
}
|
|
3972
4138
|
|
|
3973
4139
|
@media (max-width: 720px) {
|
|
3974
|
-
|
|
3975
|
-
header would otherwise wrap. Keeps brand + project filter + theme
|
|
3976
|
-
+ settings on a single row at common split-window widths. */
|
|
3977
|
-
.header-tertiary { display: none; }
|
|
3978
|
-
/* Allow the tab bar to scroll horizontally rather than wrap into two
|
|
3979
|
-
rows. Scrollbar is hidden to keep the sticky chrome compact. */
|
|
3980
|
-
.tab-bar {
|
|
3981
|
-
overflow-x: auto;
|
|
3982
|
-
-webkit-overflow-scrolling: touch;
|
|
3983
|
-
scrollbar-width: none;
|
|
3984
|
-
}
|
|
3985
|
-
.tab-bar::-webkit-scrollbar { display: none; }
|
|
3986
|
-
.tab-btn { flex-shrink: 0; }
|
|
4140
|
+
.header-title { font-size: var(--font-size-xl); }
|
|
3987
4141
|
}
|
|
3988
4142
|
|
|
3989
4143
|
@media (max-width: 520px) {
|
|
4144
|
+
body { --header-sticky-offset: 117px; }
|
|
3990
4145
|
header { padding: var(--sp-3) var(--sp-4); }
|
|
4146
|
+
.header-row { flex-wrap: wrap; }
|
|
4147
|
+
.header-left, .header-right { flex-basis: 100%; }
|
|
4148
|
+
.refresh-status[data-refresh-state="idle"] { display: none; }
|
|
3991
4149
|
.tab-bar { padding: 0 var(--sp-4); }
|
|
3992
4150
|
.modal { padding: var(--sp-3); }
|
|
3993
4151
|
.modal-card { padding: var(--sp-4); border-radius: var(--radius-lg); }
|
|
@@ -4051,7 +4209,7 @@
|
|
|
4051
4209
|
<span class="header-title">codemem</span>
|
|
4052
4210
|
<span class="health-dot status-healthy" id="healthDot" title="Healthy"></span>
|
|
4053
4211
|
</div>
|
|
4054
|
-
<span class="refresh-status" id="refreshStatus">refreshing…</span>
|
|
4212
|
+
<span class="refresh-status" id="refreshStatus" data-refresh-state="refreshing">refreshing…</span>
|
|
4055
4213
|
<span class="sr-only" id="refreshAnnouncer" aria-live="polite"></span>
|
|
4056
4214
|
</div>
|
|
4057
4215
|
<div class="header-right">
|
|
@@ -4084,6 +4242,7 @@
|
|
|
4084
4242
|
<div id="toastRoot"></div>
|
|
4085
4243
|
<div id="recipientPolicyManagementMount"></div>
|
|
4086
4244
|
<div id="legacyTeamSetupMount"></div>
|
|
4245
|
+
<div id="diagnosticsDrawerMount"></div>
|
|
4087
4246
|
<div class="viewer-reconnect-overlay" id="viewerReconnectOverlay" hidden>
|
|
4088
4247
|
<div class="viewer-reconnect-card" role="status" aria-live="assertive">
|
|
4089
4248
|
<div class="viewer-reconnect-eyebrow">Viewer connection</div>
|
|
@@ -4095,8 +4254,9 @@
|
|
|
4095
4254
|
<span class="viewer-reconnect-spinner" aria-hidden="true"></span>
|
|
4096
4255
|
<span>The page will recover automatically when the server responds.</span>
|
|
4097
4256
|
</div>
|
|
4098
|
-
<div>
|
|
4099
|
-
<button class="settings-button" id="viewerReconnectRetry">Retry now</button>
|
|
4257
|
+
<div class="viewer-reconnect-actions">
|
|
4258
|
+
<button class="settings-button" id="viewerReconnectRetry" type="button">Retry now</button>
|
|
4259
|
+
<button class="settings-button" id="viewerReconnectDiagnostics" type="button">View connection diagnostics</button>
|
|
4100
4260
|
</div>
|
|
4101
4261
|
</div>
|
|
4102
4262
|
</div>
|
|
@@ -4357,6 +4517,7 @@
|
|
|
4357
4517
|
<div class="card" style="animation-delay: 0s">
|
|
4358
4518
|
<div class="section-header">
|
|
4359
4519
|
<h2>System health</h2>
|
|
4520
|
+
<button class="settings-button" id="healthOpenDiagnostics" type="button">View diagnostics</button>
|
|
4360
4521
|
</div>
|
|
4361
4522
|
<div class="section-meta" id="healthMeta">Assessing health signals…</div>
|
|
4362
4523
|
<div class="health-actions" id="healthActions"></div>
|
|
@@ -4367,6 +4528,7 @@
|
|
|
4367
4528
|
<div class="card" style="animation-delay: 0.05s">
|
|
4368
4529
|
<h2>Stats</h2>
|
|
4369
4530
|
<div class="grid-2" id="statsGrid"></div>
|
|
4531
|
+
<div id="automaticRecallStats" style="margin-top: var(--sp-3)"></div>
|
|
4370
4532
|
</div>
|
|
4371
4533
|
<div class="card" style="animation-delay: 0.1s">
|
|
4372
4534
|
<h2>Current session</h2>
|
|
@@ -4572,6 +4734,7 @@
|
|
|
4572
4734
|
<h2>Sync diagnostics</h2>
|
|
4573
4735
|
</div>
|
|
4574
4736
|
<div class="section-actions">
|
|
4737
|
+
<button class="settings-button" id="syncOpenDiagnostics" type="button">Recent sync events</button>
|
|
4575
4738
|
<label class="small sync-redact-control">
|
|
4576
4739
|
<span id="syncRedactMount"></span>
|
|
4577
4740
|
<span id="syncRedactLabel">Redact</span>
|
|
@@ -4617,6 +4780,6 @@
|
|
|
4617
4780
|
</div>
|
|
4618
4781
|
</div>
|
|
4619
4782
|
|
|
4620
|
-
<script src="/assets/app.js?v=
|
|
4783
|
+
<script src="/assets/app.js?v=07cb8aa93d50"></script>
|
|
4621
4784
|
</body>
|
|
4622
4785
|
</html>
|