main f6d8405

2026-02-16

c31e89efix(security): use constant-time comparison for Convex API secret SSH UnverifiedKit
1a6a567fix(security): use getClientAddress() instead of spoofable headers for IP SSH UnverifiedKit
0ff6d73fix(security): replace setInterval with lazy cleanup in register endpoint SSH UnverifiedKit
35b5b26chore(deps): update all dependencies SSH UnverifiedKit
9745546chore: add docs/plans to gitignore SSH UnverifiedKit

2026-01-24

818aa54Merge pull request #86 from kitpdr/fix/convex-client-setup merge GPG UnverifiedKiT
c844c36fix(deploy): use dynamic env for optional convex url SSH UnverifiedKit
15f960bfix(deploy): align convex setup with static env SSH UnverifiedKit
a47c61cMerge pull request #85 from kitpdr/fix/convex-env-guards merge GPG UnverifiedKiT
110b0e4fix(deploy): guard missing Convex URL SSH UnverifiedKit
bdcdb6bMerge pull request #84 from kitpdr/fix/wrangler-nodejs-compat-main merge GPG UnverifiedKiT
7f862d0fix(deploy): read public Convex URL at runtime SSH UnverifiedKit
8eb247bfix(deploy): use SvelteKit output dir SSH UnverifiedKit
6119cd5fix(deploy): read Convex URL at runtime SSH UnverifiedKit
f4cafd8fix(deploy): add wrangler node compat SSH UnverifiedKit
9900341Merge pull request #83 from kitpdr/fix/chat-ux-improvements merge GPG UnverifiedKiT
930acd6chore(chat): satisfy lint for style fetch SSH UnverifiedKit
ceeb452fix(chat): hydrate prefs and align pagination SSH UnverifiedKit
2919a84feat(api): add centralized API client and enforce public message limit SSH UnverifiedKit
5a6bd11fix(chat): scroll to bottom on load and auto-save text style SSH UnverifiedKit
18beec2Merge pull request #82 from kitpdr/fix/chat-ux-improvements merge GPG UnverifiedKiT
27eb0fafix(lint): use SvelteMap instead of native Map SSH UnverifiedKit
128e01cfix(mentions): address PR review feedback from copilot SSH UnverifiedKit
51dcfa2fix(chat): mention token inherits message color instead of hardcoded blue SSH UnverifiedKit
787d679fix(chat): improve UX with scroll, notifications, and font style persistence SSH UnverifiedKit

2026-01-20

aea0b31Merge pull request #81 from kitpdr/fix/csp-unsafe-eval merge GPG UnverifiedKiT
d045e1cfix(security): add unsafe-eval to CSP script-src directive SSH UnverifiedKit
200b9b6Merge pull request #80 from kitpdr/feat/stale-user-cleanup merge GPG UnverifiedKiT
e96174afeat(chat): add stale user cleanup and improve disabled state styling SSH UnverifiedKit

2026-01-19

baa04b0Merge pull request #79 from kitpdr/feat/mention-shortcut merge GPG UnverifiedKiT
23f928afix(chat): add destroy method to registerMentionNode action SSH UnverifiedKit
09dc9acrefactor(chat): extract mention utilities and fix lint/scroll issues SSH UnverifiedKit
3f6429ffeat(chat): add @mention autocomplete with highlighting and unread tracking SSH UnverifiedKit

2026-01-18

6aaf2c1Merge pull request #76 from kitpdr/fix/online-status-timeout merge GPG UnverifiedKiT
547efabdocs(queries): clarify computeEffectiveStatus is read-time only GPG Verifiedbnema
b4dc098refactor(api): remove unused endpoints and SSE references GPG Verifiedbnema
cb21e20fix(status): compute online status from lastSeen timeout in queries GPG Verifiedbnema
de99bb9Merge pull request #75 from kitpdr/fix/cloudflare-process-env merge GPG UnverifiedKiT
293f7fefix(cloudflare): replace process.env with SvelteKit env modules GPG Verifiedbnema
13a549cMerge pull request #74 from kitpdr/fix/cloudflare-global-scope merge GPG UnverifiedKiT
fe68614fix(rate-limiter): use max duration for cleanup GPG Verifiedbnema
7119e85style: fix prettier formatting in README GPG Verifiedbnema
f4def24docs: add Cloudflare Pages limitations section GPG Verifiedbnema
8b02f58fix(cloudflare): remove setInterval from global scope GPG Verifiedbnema
6968ec0Merge pull request #73 from kitpdr/fix/cloudflare-logger-compat merge GPG UnverifiedKiT
6b6c0b3fix: use pino without transports for cloudflare compatibility GPG Verifiedbnema
a7124c4Merge pull request #72 from kitpdr/fix/cloudflare-workers-compat merge GPG UnverifiedKiT
2d8d7a1fix: add backoff and skip init for non-API routes GPG Verifiedbnema
fe76e67fix: use promise-based init to prevent race condition GPG Verifiedbnema
28802cafix: cloudflare workers compatible initialization GPG Verifiedbnema

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 3

Tags 8

↑↓ moveenter openesc close