Files
backspace/packages/server/drizzle/meta/_journal.json
T
devsyncwrld 1830051732
OpenSSF Scorecard / Scorecard analysis (push) Waiting to run
CI / Build & test (Node 20) (push) Canceled after 0s
CI / Build & test (Node 24) (push) Canceled after 0s
CI / Build & test (push) Canceled after 0s
CodeQL / Analyze (javascript-typescript) (push) Canceled after 0s
Security / Secret scan (gitleaks) (push) Canceled after 0s
Security / Dependency scan (OSV-Scanner) (push) Canceled after 0s
Security / IaC/config scan (Trivy) (push) Canceled after 0s
Security / License compliance scan (Trivy) (push) Canceled after 0s
feat(stats): voice-time and message leaderboards per space
Voice stays get their own table rather than joining the audit log: that table
records points in time, a call is an interval, and pairing join/leave point
events would leave every query guessing at joins whose leave never arrived.

Sessions are opened and closed inside joinRoom/leaveCurrentRoom rather than at
the seven call sites that reach them, so no path can be missed, and
destroyRoom closes them too — it bypasses leaveCurrentRoom and would otherwise
leak open rows.

A restart leaves sessions open with an unknowable end time. They are closed at
startedAt, discarding that time rather than inventing it: crediting the gap
would hand someone hours they never spent, and the numbers are the point.
Mirrors the existing users.status sweep on boot.

Only closed sessions count, so a figure does not move on every refresh. Bars
scale to the leader, not the total — with five people every share of a total
looks identical. Statistics are readable by any member, since they are the
group's own numbers; the audit log, which names who did what, stays on
MANAGE_SPACE.
2026-08-31 13:29:59 -03:00

111 lines
2.2 KiB
JSON

{
"version": "7",
"dialect": "sqlite",
"entries": [
{
"idx": 0,
"version": "6",
"when": 1777065939127,
"tag": "0000_lethal_wildside",
"breakpoints": true
},
{
"idx": 1,
"version": "6",
"when": 1777144927946,
"tag": "0001_complex_screwball",
"breakpoints": true
},
{
"idx": 2,
"version": "6",
"when": 1777196627239,
"tag": "0002_peer_approval_token",
"breakpoints": true
},
{
"idx": 3,
"version": "6",
"when": 1777229997210,
"tag": "0003_brave_inhumans",
"breakpoints": true
},
{
"idx": 4,
"version": "6",
"when": 1777395066272,
"tag": "0004_slim_mentallo",
"breakpoints": true
},
{
"idx": 5,
"version": "6",
"when": 1778428627458,
"tag": "0005_group_dm_metadata",
"breakpoints": true
},
{
"idx": 6,
"version": "6",
"when": 1782474063349,
"tag": "0006_spicy_scourge",
"breakpoints": true
},
{
"idx": 7,
"version": "6",
"when": 1782832912087,
"tag": "0007_nervous_orphan",
"breakpoints": true
},
{
"idx": 8,
"version": "6",
"when": 1782932926154,
"tag": "0008_cute_sebastian_shaw",
"breakpoints": true
},
{
"idx": 9,
"version": "6",
"when": 1783011477517,
"tag": "0009_uneven_red_ghost",
"breakpoints": true
},
{
"idx": 10,
"version": "6",
"when": 1783035334526,
"tag": "0010_broken_blazing_skull",
"breakpoints": true
},
{
"idx": 11,
"version": "6",
"when": 1788190305853,
"tag": "0011_lethal_bruce_banner",
"breakpoints": true
},
{
"idx": 12,
"version": "6",
"when": 1788192490711,
"tag": "0012_sour_pixie",
"breakpoints": true
},
{
"idx": 13,
"version": "6",
"when": 1788193162813,
"tag": "0013_fancy_betty_brant",
"breakpoints": true
},
{
"idx": 14,
"version": "6",
"when": 1788193659704,
"tag": "0014_mean_killer_shrike",
"breakpoints": true
}
]
}