lilleman
|
03d14b1a20
|
Merge remote-tracking branch 'origin/main' into plugin-storage
CI / full-gate (push) Successful in 3m10s
# Conflicts:
# package-lock.json
# package.json
|
2026-08-19 20:34:30 +02:00 |
|
renovate-bot
|
19b3fbc802
|
Update dependency lucide-static to v1.32.0
CI / full-gate (push) Successful in 3m9s
Mirror / github-mirror (push) Successful in 6s
Release-Bump: minor
|
2026-08-19 04:18:11 +00:00 |
|
lilleman
|
bf638dfb19
|
Give a plugin a Postgres database of its own
CI / full-gate (push) Successful in 2m58s
|
2026-08-18 23:12:13 +02:00 |
|
renovate-bot
|
137c35478d
|
Update dependency lucide-static to v1.31.0
CI / full-gate (push) Successful in 2m50s
Mirror / github-mirror (push) Successful in 3s
Release-Bump: minor
|
2026-08-10 04:17:44 +00:00 |
|
lilleman
|
bb6021adf7
|
Update lockfile for typescript 7.0.2
CI / full-gate (push) Successful in 2m51s
Mirror / github-mirror (push) Successful in 5s
|
2026-08-02 15:29:13 +02:00 |
|
lilleman
|
4aada6eed9
|
Update lockfile for ejs 6.0.1
|
2026-08-02 15:25:51 +02:00 |
|
lilleman
|
c259497627
|
Update lockfile for @types/node 24.13.3
CI / full-gate (push) Successful in 2m36s
Mirror / github-mirror (push) Successful in 5s
|
2026-08-02 15:22:25 +02:00 |
|
lilleman
|
ffeec70f8f
|
Update lockfile and regenerate icons.ejs for lucide-static 1.28.0
CI / full-gate (push) Successful in 2m44s
Mirror / github-mirror (push) Successful in 6s
|
2026-08-02 15:15:12 +02:00 |
|
lilleman
|
a9e3dedbb4
|
§9 structured logging + OTLP observability (todo §9); structured, OTLP-native logging on @larvit/log (2.3.0, pinned; itself zero-dependency — the one new runtime dep). New pure src/logger.ts: createLogger() builds one app Log tagged service.name=plainpages (level/format/OTLP from config, injectable stdout/stderr); requestLogger() clones it per request (own root trace, inheriting level/format/streams/OTLP) into a "request" span, adopting an inbound W3C traceparent so a request continues an upstream proxy's distributed trace (malformed ⇒ fresh trace; clone honours a passed traceparent while dropping the parent's, unlike parentLog). app.ts builds the per-request log at the top of the handler and on res "close" (fires on completion AND abort, unlike "finish") emits one access line (method/path-without-query/status/ms/requestId, guarded) then end()s to flush the span (fire-and-forget .catch — a flaky collector never crashes a served request); the catch-all 500 + Ory-unreachable re-mint now log via reqLog.error/warn; static.ts mid-stream error takes an injected onError. server.ts builds the app logger, logs discovery/listen/shutdown, end()-flushes on SIGTERM/SIGINT (re-entry-guarded). bootstrap.ts events go structured (the human first-run banner stays raw). Config (environment-agnostic, fail-loud): LOG_LEVEL (info), LOG_FORMAT (text; prod compose → json), OTLP_ENDPOINT (unset ⇒ console-only; set ⇒ export logs + spans to an OTel Collector), OTLP_PROTOCOL (http/json|http/protobuf). compose: base sets LOG_FORMAT=json, dev override flips it to text. Tests-first: logger.test.ts (service.name/severity/level-gate/format, OTLP-only-when-endpoint, a stubbed-fetch proof it POSTs /v1/logs, requestLogger context-merge/own-root-trace/traceparent-continue/malformed-ignored), config.test.ts (4 toggles + validation), app.test.ts (live request emits the JSON access line), compose.test.ts (prod json / dev text). Stability-reviewer: APPROVE, no Critical/High (addressed both yellow nits — guarded access line + "finish"→"close" so aborted requests log; shutdown re-entry guard — and the green ones). README (config table, new Observability section, Status, Layout, runtime-deps) + AGENTS (deps) updated. typecheck + 326 units green (317 → 326).
|
2026-06-20 02:11:10 +02:00 |
|
lilleman
|
d021fd701e
|
Refine product description and roadmap per product-owner review; add lucide-static
|
2026-06-14 18:12:32 +02:00 |
|
lilleman
|
4eed701419
|
Scaffold Docker-only Node 24 + TypeScript EJS web backend
|
2026-06-14 11:45:30 +02:00 |
|