Commit Graph

  • f84bce1359 Merge: t-paliad-159 — UPC RoP deadline audit (curie, 417 lines, 8 RoP section families covering INF/REV/PI/DAM/DEC/APP/MISC/ORAL; cross-referenced against paliad.deadline_rules; surfaces 2 duration bugs in R.49.1 + R.52, gap list ordered by frequency-of-use, scope explicitly excludes EPO/DPMA/BGH families for follow-up audits; companion to docs/audit-fristenrechner-completeness-2026-04-30.md) m 2026-05-08 16:22:14 +02:00
  • afe4fc2efe docs(t-paliad-159): UPC RoP deadline audit mai/curie/researcher-upc-rop-audit m 2026-05-08 16:21:25 +02:00
  • 7614748243 Merge: t-paliad-157 — Fristenrechner column-view sequence_order + UPC R.320 path (609da9e Columns view preserves sequence_order for undated events so Urteil renders above Berufungseinlegung instead of stacking; 7c75161 migration 063 — Frist verpasst → UPC R.320 cascade path with trigger event 207, leaf frist-verpasst.upc, junction to existing Wiedereinsetzung concept; live-applied during dev, v63 in tracker) m 2026-05-08 16:04:12 +02:00
  • 7c751617e5 fix(fristenrechner/cascade): add UPC R.320 path under "Frist verpasst" m 2026-05-08 16:00:21 +02:00
  • 609da9e86b fix(fristenrechner/columns): preserve sequence_order for undated events m 2026-05-08 15:54:35 +02:00
  • 7daa70aaad feat(paliadin/projects-cards): markdown rendering + grid compactness + overdue-pending in NextEvents m 2026-05-08 15:09:24 +02:00
  • 05d14d5e5a feat(admin/paliadin): show user + response preview + page origin + per-tool row counts on the monitor m 2026-05-08 15:05:24 +02:00
  • 925a377c8b feat(paliadin): markdown links + auto-link bare URLs in chat responses m 2026-05-08 14:22:18 +02:00
  • 7935fee7bf fix(paliadin): preserve chip/link markers when saving chat history m 2026-05-08 14:12:42 +02:00
  • be2150c17d fix(paliadin): used_tools NOT NULL violation + frontend response truncation m 2026-05-08 14:00:03 +02:00
  • 5893c45e5e Merge: t-paliad-155 — Paliadin skill-as-skill + per-user tmux session + project-MCP cwd + 120s timeout (skill at ~/.claude/skills/paliadin/SKILL.md replaces paliadin_prompt.go's keystroke-bootstrap; per-user session keying paliad-paliadin-<user_id_short>; shim spawns claude in /home/m/dev/paliad so project MCPs incl. supabase load; PALIADIN_TIMEOUT_S default 60→120s for cold-start safety; SKILL.md bans psql/curl fallbacks; install-paliadin-skill script for repo-as-source-of-truth; paliadin_prompt.go deprecated) m 2026-05-08 13:43:23 +02:00
  • 3e1f4eee4b fix(t-paliad-155): cold-start timeout headroom + ban DB fallbacks in skill mai/noether/paliadin-real-claude m 2026-05-08 13:19:27 +02:00
  • e75a71fb34 fix(t-paliad-155): spawn claude pane in paliad repo root for project MCPs m 2026-05-08 13:03:50 +02:00
  • 9579032f94 feat(t-paliad-155): re-author paliadin skill via /write-a-skill conventions m 2026-05-08 12:48:00 +02:00
  • 97a412498d feat(t-paliad-155): real Claude SKILL.md + per-user tmux session m 2026-05-08 12:42:57 +02:00
  • 319221ff83 Merge: t-paliad-151 fix — base64-decode PALIADIN_SSH_PRIVATE_KEY env var m 2026-05-08 11:28:53 +02:00
  • 4c47819da8 fix(t-paliad-151): base64-decode PALIADIN_SSH_PRIVATE_KEY env var mai/noether/inventor-paliadin m 2026-05-08 11:28:02 +02:00
  • db3514c4db Merge: t-paliad-151 Phase A.5 — env-var passthrough for Paliadin remote-routing m 2026-05-08 11:25:13 +02:00
  • a0d1e77ef2 feat(t-paliad-151) Phase A.5: compose env-var passthrough for Paliadin remote routing m 2026-05-08 02:20:39 +02:00
  • d519363c8d fix(admin/approval-policies): preserve <details> open state across re-renders m 2026-05-08 11:20:39 +02:00
  • 82faa3d8bd Revert "Merge: t-paliad-151 Phase A.5 — compose network_mode: host + Paliadin env-var plumbing. Lifts the DO-NOT-MERGE-before-A.5 gate from da971a7. Dokploy secrets PALIADIN_SSH_PRIVATE_KEY + PALIADIN_KNOWN_HOSTS already registered on mlake (validated SSH key roundtrip via ssh-keygen -y); single-line vars PALIADIN_REMOTE_HOST=100.99.98.203 / PORT=22022 / USER=m also staged. Next deploy is the M1-vs-M2 traefik gate (design §4.2): if paliad.de returns 200/3xx after redeploy, traefik routes under host mode (M2) and the route ships; if 502, revert this merge and revisit decision 1." m 2026-05-08 02:39:36 +02:00
  • a80652a085 Merge: t-paliad-151 Phase A.5 — compose network_mode: host + Paliadin env-var plumbing. Lifts the DO-NOT-MERGE-before-A.5 gate from da971a7. Dokploy secrets PALIADIN_SSH_PRIVATE_KEY + PALIADIN_KNOWN_HOSTS already registered on mlake (validated SSH key roundtrip via ssh-keygen -y); single-line vars PALIADIN_REMOTE_HOST=100.99.98.203 / PORT=22022 / USER=m also staged. Next deploy is the M1-vs-M2 traefik gate (design §4.2): if paliad.de returns 200/3xx after redeploy, traefik routes under host mode (M2) and the route ships; if 502, revert this merge and revisit decision 1. m 2026-05-08 02:37:32 +02:00
  • f820aa8316 Merge: t-paliad-154 — approval-policy authoring UI (migration 062 paliad.approval_policies unit-defaults + 'none' sentinel + tree-walking resolver + 88 unit-default seed rows + paliad.policy_audit_log; ApprovalService rewire with resolver delegation + scope-split CRUD + audit emission; HTTP handlers admin APIs + form-hint endpoint + audit-log union; /admin/approval-policies admin page + admin-index card + form-time hints on deadline/appointment new pages + inbox empty-state nudge for admins; 13 m-locked design decisions honoured verbatim per docs/design-approval-policy-ui-2026-05-07.md §2) m 2026-05-08 02:33:25 +02:00
  • 5df4285e1d feat(t-paliad-154) commit 5/5: inbox empty-state nudge + form-time hints mai/hilbert/inventor-approval-policy m 2026-05-08 02:31:35 +02:00
  • 028423b32f feat(t-paliad-154) commit 4/5: admin /admin/approval-policies page m 2026-05-08 02:27:54 +02:00
  • 1d7c7d7246 Merge: t-paliad-151 Phase B code (env-var-gated, compose flip held for A.5) — Paliadin remote-routing via Tailscale SSH to mRiver. Includes Phase A.0 design doc + scripts/paliadin-shim from earlier shift. Production behavior unchanged: without PALIADIN_REMOTE_HOST in env, paliad never invokes ssh and uses local-tmux PoC path byte-identically. Refactor: Paliadin interface + LocalPaliadinService + RemotePaliadinService + DisabledPaliadinService stub. main.go env-var switch (remote/local/disabled). Dockerfile +openssh-client. 14 unit tests via callShimHook. Frontend friendlyErrorMessage for mriver_unreachable/shim_auth_failed/shim_error/bootstrap_failed/timeout (DE+EN). NOT included: docker-compose network_mode: host flip — held on branch as da971a7 pending Phase A.5 traefik test by m. NOT cronus. m 2026-05-08 02:23:38 +02:00
  • 0f87d73b1b feat(t-paliad-154) commit 3/5: HTTP handlers — admin APIs + form-hint endpoint + audit-log union m 2026-05-08 02:22:19 +02:00
  • da971a7466 DO NOT MERGE before Phase A.5 — compose: network_mode: host + Paliadin env vars m 2026-05-08 02:20:39 +02:00
  • e6067c74db feat(t-paliad-154) commit 2/5: ApprovalService rewire — resolver delegation + scope-split CRUD + audit emission m 2026-05-08 02:20:15 +02:00
  • e4110cf2db feat(t-paliad-151) frontend: friendly errors for remote-Paliadin codes m 2026-05-08 02:19:48 +02:00
  • 68c56ea920 test(t-paliad-151): paliadin_remote_test.go — RemotePaliadinService unit tests m 2026-05-08 02:18:08 +02:00
  • 0c8a2f1a95 feat(t-paliad-151) RemotePaliadinService + main.go env-var routing m 2026-05-08 02:16:50 +02:00
  • 56a3dc961e refactor(t-paliad-151): extract Paliadin interface; rename PaliadinService → LocalPaliadinService m 2026-05-08 02:14:12 +02:00
  • e92c56b5f8 feat(t-paliad-154) commit 1.5: extend migration 062 with policy_audit_log m 2026-05-08 02:13:58 +02:00
  • f7908f03ad feat(t-paliad-154) commit 1/5: migration 062 — approval_policies unit-defaults + 'none' sentinel + resolver + seed m 2026-05-08 02:11:23 +02:00
  • f62bf9f8fb feat(t-paliad-151) Dockerfile: openssh-client for remote Paliadin m 2026-05-08 02:10:40 +02:00
  • dd139a3536 Merge remote-tracking branch 'origin/main' into mai/noether/inventor-paliadin m 2026-05-08 02:08:12 +02:00
  • 01fa4b1287 Merge remote-tracking branch 'origin/main' into mai/hilbert/inventor-approval-policy m 2026-05-08 02:07:46 +02:00
  • bb035558be design(t-paliad-154): approval-policy authoring UI m 2026-05-07 23:51:38 +02:00
  • f952fb85c3 design(t-paliad-151) amend: port 22022 bypass + Phase A.0 results m 2026-05-07 23:37:26 +02:00
  • b78941e293 Merge: t-paliad-152 — /api/events honours direct_only (Fristen/Termine subtree toggle works again — handleListEvents + handleEventsSummary parse direct_only via parseDirectOnly; threaded as DirectOnly bool through EventListFilter / EventSummaryFilter / ListFilter / AppointmentListFilter; project predicate swaps from projectDescendantPredicate to direct project_id eq when set; 3 new DirectOnly subtests in project_filter_descendants_test.go) m 2026-05-07 23:21:01 +02:00
  • 55c93c9de3 Merge: t-paliad-153 — Frist due_date 02:00 leak (consolidate views/format.ts with UTC-anchored date-only detection + kind-aware formatRowTime/formatRelative; shape-cards skips time slot under day-grouped headings; shape-list reduces deadline relatives to day precision; tests pass under TZ=Berlin/LA/UTC) m 2026-05-07 23:08:18 +02:00
  • f90bfeda9b fix(t-paliad-153): deadline due_date renders 02:00 in CEST (UTC-midnight leak) mai/shannon/bug-frist-due-date m 2026-05-07 23:07:26 +02:00
  • 024841129f feat(t-paliad-151) shim: scripts/paliadin-shim m 2026-05-07 23:02:52 +02:00
  • db4279d148 fix(t-paliad-152): /api/events honours direct_only — Fristen/Termine subtree toggle works again mai/fritz/bug-fristen-termine m 2026-05-07 22:58:44 +02:00
  • 552c9200bc Merge: t-paliad-149 PR 2 — /projects Cards view + drag-rearrange named layouts (migration 061 paliad.user_card_layouts + CardLayoutService + LayoutSpec validator + CardsPreview endpoint + frontend projects-cards.ts with HTML5 drag-and-drop edit mode) m 2026-05-07 22:48:05 +02:00
  • befa41c00e design(t-paliad-151): Paliadin Tailscale SSH route to mRiver m 2026-05-07 22:47:30 +02:00
  • aeeded7e21 feat(t-paliad-149) PR2 step 2/2: frontend — Cards view + drag-rearrange named layouts mai/godel/inventor-projects-page m 2026-05-07 22:46:26 +02:00
  • 4e1d311a9c feat(t-paliad-149) PR2 step 1/3: backend — migration 061 + CardLayoutService + CardsPreview m 2026-05-07 22:41:18 +02:00
  • 1061685981 Merge: t-paliad-149 PR 1 — /projects redesign tree+chips+pin+search (migration 060 paliad.user_pinned_projects + PinService + BuildTreeWithOptions + last-view restore) m 2026-05-07 22:30:37 +02:00
  • a5f7b5009b feat(t-paliad-149) PR1 step 2/3: frontend rewrite — chips + pin star + last-view restore m 2026-05-07 22:29:39 +02:00
  • b59e44616d Merge: t-paliad-150 — Paliadin chat fixes (bubble alignment + dark-mode contrast tokens + friendly tmux-unavailable message) m 2026-05-07 22:22:41 +02:00
  • fb608321ca Merge: i18n — Sicht → Ansicht across custom views m 2026-05-07 22:22:33 +02:00
  • 35f307d61d fix(i18n): Sicht → Ansicht (custom views) — m's call: View is always Ansicht. Sweep applied to /views + /views/editor + sidebar + onboarding strings. Approval-context 'Sicht' (visibility-tier in derived team) left as-is — different semantic. m 2026-05-07 22:22:33 +02:00
  • 8412328dec feat(t-paliad-149) PR1 step 1/3: backend — migration 060 + PinService + BuildTreeWithOptions m 2026-05-07 22:21:45 +02:00
  • 2201c6da73 fix(t-paliad-150): Paliadin chat — bubble alignment + dark-mode contrast + friendly tmux-unavailable error mai/fritz/bug-paliadin-chat m 2026-05-07 22:21:27 +02:00
  • 438e73fd13 docs(t-paliad-149): renumber migrations 058→060 (PR 1) and 059→061 (PR 2) m 2026-05-07 22:15:22 +02:00
  • 597d76e21c Merge remote-tracking branch 'origin/main' into mai/godel/inventor-projects-page m 2026-05-07 22:14:28 +02:00
  • 8bdebe9bc1 Merge: landing page text — Patent Litigation + Administration/Knowledge/Tools m 2026-05-07 22:11:37 +02:00
  • d53cc3553c fix: landing page text reflects current product — 'Patent Knowledge' → 'Patent Litigation'; 'Leitfäden, Vorlagen und Dokumente' → 'Administration, Knowledge und Tools' (DE+EN) m 2026-05-07 22:11:37 +02:00
  • b9824dd86f docs(t-paliad-149): lock 4 surfaced questions per m's AskUserQuestion answers m 2026-05-07 22:11:18 +02:00
  • 397a9b1854 docs(t-paliad-149): inventor design — projects page redesign (tree-first + chips + pinning + cards) m 2026-05-07 22:05:44 +02:00
  • f4aa2033f9 Merge: t-paliad-148 — split project_teams.role into firm-level profession + project-level responsibility (migration 059 + ApprovalService tuple-with-gate ladder + 3-col team table + admin-team profession + onboarding picker) m 2026-05-07 22:00:57 +02:00
  • efaa7787af Merge remote-tracking branch 'origin/main' into mai/kepler/inventor-profession-vs mai/kepler/inventor-profession-vs m 2026-05-07 22:00:26 +02:00
  • c6cdd2c855 fix(t-paliad-148): renumber migration 057→059 (collision with fritz t-147 email_broadcasts already on main; noether t-146 paliadin_poc landed at 058) m 2026-05-07 22:00:26 +02:00
  • fc7192c115 Merge: t-paliad-146 — Paliadin PoC (tmux-Claude in-app AI buddy, m-only) m 2026-05-07 21:57:49 +02:00
  • 8d714dd95e fix(t-paliad-146): gate Paliadin to owner email in code, drop PALIADIN_ENABLED mai/noether/inventor-paliadin-in-app m 2026-05-07 21:57:20 +02:00
  • 0b4de1c645 feat(t-paliad-148) commit 6/6: deprecation notes + grep sweep m 2026-05-07 21:57:17 +02:00
  • 2af4bf1f88 feat(t-paliad-148) commit 5/6: frontend — team-add dropdown + 3-col team table + admin-team profession + onboarding m 2026-05-07 21:56:18 +02:00
  • 9184e9b0ef feat(t-paliad-148) commit 4/6: reminder + deadline + derivation cleanup — pt.role → pt.responsibility m 2026-05-07 21:50:31 +02:00
  • 7b66c4d035 feat(t-paliad-146): Paliadin PoC — tmux-Claude in-app AI buddy m 2026-05-07 21:49:33 +02:00
  • e6937d232e feat(t-paliad-148) commit 3/6: TeamService + UserService + Models + Handlers — write profession + responsibility m 2026-05-07 21:48:38 +02:00
  • 6506864730 feat(t-paliad-148) commit 2/6: ApprovalService + DerivationService — tuple-with-gate ladder m 2026-05-07 21:44:14 +02:00
  • ab2530ff44 feat(t-paliad-148) commit 1/6: migration 057 — schema + backfill + user_project_authority_level m 2026-05-07 21:39:56 +02:00
  • 8cc8435d2e Merge: fix Custom Views toast respecting its hidden attribute m 2026-05-07 21:17:57 +02:00
  • c81ca6a12a merge: main into mai/noether/inventor-paliadin-in-app — pick up fritz's 057_email_broadcasts before adding 058_paliadin_poc m 2026-05-07 21:17:57 +02:00
  • 0f835b6c59 fix(t-paliad-144): empty Custom Views toast — .views-toast { display: flex } was overriding the [hidden] attribute (same-specificity tie, declaration order wins). Add explicit .views-toast[hidden] { display: none } so the toast respects its own hidden state. Was rendering as a visible empty box on every page load. m 2026-05-07 21:17:57 +02:00
  • 905e743281 Merge: fix Custom Views toast hardcoded light colors m 2026-05-07 21:16:06 +02:00
  • 215a1ceeda fix(t-paliad-144): Custom Views toast — replace hardcoded light-yellow (#fff8db / #f3d27a / #5b4304) with paliad tokens (lime-tint bg + border-strong + text). Was theme-blind, stayed bright in dark mode. m 2026-05-07 21:16:06 +02:00
  • e4adc39833 Merge: t-paliad-147 — bulk team email (migration 057 + BroadcastService + /team filter+compose modal + /admin/broadcasts viewer) m 2026-05-07 21:01:12 +02:00
  • 3dffce7a0d Merge: fix Custom Views dark-mode contrast (token name mismatch) m 2026-05-07 21:00:51 +02:00
  • d8b84d0c58 fix(t-paliad-144): Custom Views CSS — replace bare-name tokens (--surface, --text-muted, --border-subtle, --surface-subtle, --surface-hover) with paliad's actual --color-* tokens. The bare names don't exist in paliad's design system; the hardcoded fallbacks (#fff, rgba(0,0,0,...)) fired in dark mode → light text on white card bg. Fixes contrast on /views list+cards+calendar shapes. m 2026-05-07 21:00:51 +02:00
  • d24f73358c design(t-paliad-146): re-scope to PoC track — m-only + monitoring m 2026-05-07 20:59:46 +02:00
  • 52ee319fd8 feat(t-paliad-147): bulk team email — send to filtered selection from /team page mai/fritz/bulk-team-email-send-to m 2026-05-07 20:58:57 +02:00
  • dc7c807725 design(t-paliad-146): Paliadin — in-app AI buddy m 2026-05-07 20:45:31 +02:00
  • 1eb43ceb6b design(t-paliad-148): split project_teams.role into firm-level profession + project-level responsibility m 2026-05-07 20:45:07 +02:00
  • 99f08e3863 Merge: t-paliad-145 design doc only — local chat feature PARKED per m's call (2026-05-07 17:03). Doc preserved in docs/design-local-chat-2026-05-07.md for when it un-parks. m 2026-05-07 17:04:10 +02:00
  • dd4f563212 design(t-paliad-145): local chat for teams mai/noether/inventor-local-chat-for m 2026-05-07 16:03:05 +02:00
  • 95f6f03cda Merge: t-paliad-144 A2 — Custom Views frontend (Meine Sichten sidebar group + /views list + /views/new editor + /views/{slug}/edit + 3 render shapes list/cards/calendar) m 2026-05-07 13:16:48 +02:00
  • fdde9eb754 feat(t-paliad-144 A2): frontend Custom Views UI mai/noether/inventor-data-display m 2026-05-07 13:15:55 +02:00
  • cda4b4083d Merge: t-paliad-144 A1 — backend substrate + Custom Views API (migration 056 paliad.user_views + ViewService 4-source union + FilterSpec/RenderSpec validators + SystemView registry + UserViewService + 9 HTTP handlers) m 2026-05-07 12:53:52 +02:00
  • b516201110 feat(t-paliad-144 A1): backend substrate + Custom Views API m 2026-05-07 12:51:37 +02:00
  • 956ff10e4d design(t-paliad-144): m signed off + Q4 correction (3 shapes, not 4) m 2026-05-07 12:36:05 +02:00
  • 5c263102e3 design(t-paliad-144): data display model — additive Custom Views + render-shape switcher m 2026-05-06 17:25:44 +02:00
  • f44ee0af0f Merge: t-paliad-143 — derived members per-unit role + multi-unit Herkunft (admin UI dropdown + array_agg in DerivationService) m 2026-05-06 17:17:05 +02:00
  • bfc48b1420 fix(t-paliad-143): derived team members all show 'Attorney' + Herkunft collapses multi-unit users mai/fritz/bug-derived-team-members m 2026-05-06 17:16:17 +02:00
  • 5cb7f76160 Merge: t-paliad-142 — sidebar no longer slide-in animates on every page nav when pinned (parallel :root.sidebar-pinned CSS selectors) m 2026-05-06 16:56:14 +02:00
  • 8b76d0c8fa fix(t-paliad-142): sidebar slide-in on every page nav when pinned mai/fritz/bug-sidebar-visibly m 2026-05-06 16:55:30 +02:00
  • 9cd05e7c59 Merge: fix team-add suggestions dropdown floating off-screen (parent needed position:relative) m 2026-05-06 16:54:22 +02:00
  • 5598aef074 fix(t-paliad-141): collab-suggestions dropdown floats off-screen — parent .form-field had no position. Scope :has() rule sets parent to position:relative only where the dropdown actually exists m 2026-05-06 16:54:22 +02:00