mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
Server: - Unified permission checker (permissions/checker.go) replaces 3 duplicated implementations - WS handler registry pattern (ws/registry.go) replaces monolithic switch (747→184 lines) - Split handlers into domain files: handlers_chat.go, handlers_presence.go, handlers_reaction.go - Shared message type constants (ws/message_types.go) — no more string literals - Admin API split into helpers.go, types.go, middleware.go (api.go now 61 lines) - Dev seed script (scripts/seed.go) with -confirm-dev safety flag - Air hot reload config (.air.toml) - Fix: DM attachment permission now uses participant check, not role check - Fix: Typing broadcast now checks ReadMessages permission for non-DM channels Client: - Extract preferences to @lib/preferences.ts (fixes lib→component dependency) - Extract roles to dedicated roles.store.ts (was mixed into channels store) - Decompose SidebarArea (921→598 lines) into 4 sub-components - Shared modal factory (lib/modalFactory.ts) with tests - Global showToast() helper (lib/toast.ts) — 18 call sites migrated - Protocol type constants (lib/protocolTypes.ts) synced with server - Remove 38 unnecessary type casts across 17 files - Component test harness (tests/helpers/test-harness.ts) with 8 tests - Fix: DM section "View All" respects collapsed state - Fix: Modal onClose fires on external signal abort - Fix: savePref wrapped in try/catch for quota exceeded - Fix: loadPref null guard added Triple-reviewed: Claude code-review agent + OpenAI Codex CLI + GitHub Copilot
47 lines
920 B
TOML
47 lines
920 B
TOML
# Air hot-reload config for OwnCord chat server.
|
|
# Usage: cd Server && air
|
|
# Docs: https://github.com/air-verse/air
|
|
|
|
root = "."
|
|
tmp_dir = "tmp"
|
|
|
|
[build]
|
|
bin = "./chatserver.exe"
|
|
cmd = "go build -o chatserver.exe -ldflags \"-s -w\" ."
|
|
delay = 1000
|
|
exclude_dir = ["tmp", "scripts", "migrations", "data", "admin/static"]
|
|
exclude_file = []
|
|
exclude_regex = ["_test\\.go$"]
|
|
exclude_unchanged = false
|
|
follow_symlink = false
|
|
full_bin = ""
|
|
include_dir = []
|
|
include_ext = ["go", "tmpl", "html"]
|
|
include_file = []
|
|
kill_delay = "3s"
|
|
log = "build-errors.log"
|
|
poll = false
|
|
poll_interval = 0
|
|
rerun = false
|
|
rerun_delay = 500
|
|
send_interrupt = true
|
|
stop_on_error = false
|
|
|
|
[color]
|
|
app = ""
|
|
build = "yellow"
|
|
main = "magenta"
|
|
runner = "green"
|
|
watcher = "cyan"
|
|
|
|
[log]
|
|
main_only = false
|
|
time = false
|
|
|
|
[misc]
|
|
clean_on_exit = true
|
|
|
|
[screen]
|
|
clear_on_rebuild = true
|
|
keep_scroll = true
|