Skip to content

Dashboard redesign#124

Merged
656d696c65 merged 14 commits into
mainfrom
dashboard-redesign
May 19, 2026
Merged

Dashboard redesign#124
656d696c65 merged 14 commits into
mainfrom
dashboard-redesign

Conversation

@656d696c65
Copy link
Copy Markdown
Member

No description provided.

&mile added 14 commits May 19, 2026 19:28
…e name

- Move files/folders from year-scope to org-scope: new /storage route under
  $idOrganization, updated API routes and dashboard tree
- Add optional 'date' field on file (content date, e.g. invoice date) with
  migration 0023_add_date_to_file.sql; exposed in updateOneFileForm and filePage
- Make file 'name' NOT NULL across DB (migration 0024), Drizzle model, Valibot
  schema, and createOneFile route body
- Default upload name derived without file extension (referenceFromFileName)
- Add 'date' field to file entry/update form (entriesTable, entryPage,
  createOneEntry, updateOneEntry)
- Entry table and entry page: file column now a clickable link to the file page,
  showing '${name} (${reference})'
- Simplify file.name null-guards throughout website now that name is non-nullable
- New checkDatabaseSchema utility: bidirectional check between Drizzle
  models and information_schema.columns — detects missing/extra tables
  and columns in both directions
- server.ts: run schema check before the restart loop; SCHEMA_CHECK_ONLY=1
  exits immediately after check (used by start.sh pre-flight)
- start.sh: run plain tsx (no watch) with SCHEMA_CHECK_ONLY=1 before
  launching tsx watch so a non-zero exit propagates to the shell
- compose.yml: add healthcheck on the API container so docker compose
  --wait correctly surfaces startup failures
- up.sh: use --wait flag and print logs of exited containers on failure
- metadata/package.json: add 'source' export condition pointing to .ts
  files so tsx --conditions source skips the build step in dev
- api/worker package.json dev scripts: add --conditions source
- worker: fix runAgentSession — remove idYear from file query/insert,
  update storageKey to org-level path (organizations/$org/storage/$id)
- Remove per-chunk console.log inside the LLM stream loop in
  runAgentSession — fired on every token, producing thousands of lines
  per agent session
- Remove duplicate getJobCounts() log inside the Bull job processor
  callback (was logged once per job); keep only the startup log
- Add Docker log rotation to the worker service in both compose files
  (max-size: 50m, max-file: 5 → 250 MB cap) as a safety net
…h maps

- Fix org cookie not updated when selecting org in header (YearContextSelect
  was firing readAllYears with stale cookie after DB reset)
- Add idOrganization to readAllYears body so query key is org-scoped
- Eliminate nested YearDataWrapper in EntryPage by passing pre-resolved data
  as props from EntryTabContent (removes double useQueries subscription)
- Extract EntryRoutePage for standalone router route
- Pre-build 12 index Maps (entryById, entryLinesByEntryId, journalById, etc.)
  inside YearDataWrapper with stable memoized references — Maps only rebuild
  when their specific data slice changes
- Remove 6 redundant useMemo Map builders from EntriesTable (now receive maps
  from YearDataWrapper as stable props)
- Replace O(n) .find()/.filter() in entryTabContent with O(1) Map lookups
- Add split panel view: right-click tab → 'Ouvrir en vue divisée', or
  drag a tab outside the bar to create a new panel automatically
- Resizable panels with drag handle (20–80% range); dragging no longer
  selects text (userSelect toggled on body during resize)
- SplitTabBar for the right panel with back/forward navigation buttons,
  drag-to-reorder and drag-to-transfer between panels
- Closing the last tab in a panel closes both the tab and the panel
- Auto-close split view when the left panel would have no tabs remaining
- Right-click on empty tab bar area shows context menu:
  'Fusionner les panneaux' (only visible in split mode)
- Replaced Popover-based tab context menu with Radix ContextMenu
  (single root, capture/bubble trick for tab vs bar distinction)
- ContextMenu.Item highlighted state matches hover style (no focus ring)
- reorderTabs added to TabsContext for global tab reordering
- Rename ~440 .tsx component files from camelCase to PascalCase
- Update all import paths across website, api, worker, and ui packages
- Fix API email template import casing mismatches
- Merge SplitTabBar into TabBar via panel? prop
- Add tab description subtitle from HistoryEntry
- Add label prop to écriture tab definition
- Update dashboard docs with 5 interface sections
…out components

Replace all SubPageLayout and PageNavigation usages in dashboard layout
components with simple <Outlet /> passthroughs. This removes the sidebar
nav and top navigation from OrganizationLayout, YearLayout, AdminPanelLayout,
OrganizationBillingLayout, OrganizationApiLayout, OrganizationSettingsLayout,
ReportsLayout, and YearSettingsLayout.

Also includes prior commits:
- Add Page.Banners sub-component (before header)
- Simplify SubPageContent to tab-only system (remove split panel)
- Remove old dashboard route sub-trees (organizations, admin, agent,
  profile, settings, support) and fix all broken imports
- Fix import ordering (organizeImports) in packages/ui, packages/api, packages/website
- Fix useImportType in popover/dialog components
- Fix useParams cast types (string | undefined → string) in dashboard feature pages
- Fix broken EntryRoutePage import (EntryPage → EntryInformationsTab)
- Fix string | null incompatibility in UpdateOneJournal
- Extract vite.config.ts plugins into packages/website/plugins/:
  - prerenderPlugin.ts: builds render.tsx with build.ssr, calls
    renderToString for each route, writes static HTML files at build time
  - render.tsx: renderToString entry using createMemoryHistory router
  - docsSearchIndexPlugin.ts: search index virtual module
  - sitemapPlugin.ts: sitemap.xml generator
  - fontPreloadPlugin.ts: font preload link injector
  - DOC_PAGE_MANIFEST.ts: static route manifest for doc pages
- Replace radix-ui context-menu and tooltip with custom implementations
- Add getCookie Node.js guard for SSR-safe cookie access
- Update root.tsx for plain SPA boot (no hydration needed)
- Simplify vite.config.ts by importing from plugins/
- Remove organisations GET/POST from API docs (dashboard-only)
- Add org delete CLI command + doc
- Add entries CRUD, compute, lines, tags to CLI
- Add years settle-balance-sheet/settle-income-statement to CLI
- Create balance-sheets and income-statements CLI commands + docs
- Add XBRL exports to CLI
- Register all new commands in CLI index
- Remove DocNextPage component from all doc pages
- Make --url optional in cli login (default: https://api.arrhes.com)
- Wrap all CLI command table cells with DocCode component
- Update DocTable to accept ReactNode rows
@656d696c65 656d696c65 force-pushed the dashboard-redesign branch from da31460 to 93e68c7 Compare May 19, 2026 17:28
@656d696c65 656d696c65 merged commit efab870 into main May 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant