Skip to content

Y-next: single-tenant ERPNext-webinterface met e-mail, alle modules en Android-wrapper - #1

Merged
DutchSailor merged 43 commits into
mainfrom
codex/y-next-architecture
Aug 27, 2026
Merged

Y-next: single-tenant ERPNext-webinterface met e-mail, alle modules en Android-wrapper#1
DutchSailor merged 43 commits into
mainfrom
codex/y-next-architecture

Conversation

@DutchSailor

Copy link
Copy Markdown
Contributor

Wat dit is

De complete Y-next-fork: de Y-app-frontend omgebouwd tot een single-tenant webinterface die rechtstreeks op één ERPNext v16-site draait (sessie-login, standaard Frappe REST, geen Express-server/vault) en zonder Bench als ERPNext Web Page op /y-next gepubliceerd wordt.

Hoofdpunten

  • Fase 1: reproduceerbare import, single-tenant app-shell op de ERPNext-sessie, deploy-tooling met build-tag/dedup-bescherming en rollback-backups
  • Alle 35+ pagina's op directe ERPNext-data (client-side stats, kanban-fallbacks, veld-zelfherstel voor instance-verschillen, missing-doctype-cache)
  • E-mail: de vertrouwde Webmail-UI op ERPNext Communication — virtuele mappen, eigen mappen (tags), prullenbak op de native Trash-status, zoeken, bulkacties, CC/BCC/handtekening, verzendstatus; IMAP-koppeling via het Email Account
  • Vergadernotities + extensie-opslag op via de API geprovisioneerde custom DocTypes (scripts/provision-y-next.mjs, idempotent incl. rechtenfase)
  • Modulezichtbaarheid 1-op-1 uit ERPNext (Block Modules + doctype-rechten + configuratiesignalen)
  • Android: minimale Tauri-webview-wrapper (packages/android/) + android-apk.yml (workflow_dispatch; vereist keystore-secrets)
  • Kwaliteit: 153 frontend- + 21 script-tests, headless visuele verificatie (scripts/visual-check-y-next.mjs), interactieve E2E-ronde (32/34 → 34/34 na rechtenfase), CSRF-gastcache-fix

Verificatie

  • npm test / tsc -b / npm run build groen
  • Live gedeployed en geverifieerd op /y-next (zie docs/deployment.md)

🤖 Generated with Claude Code

DutchSailor and others added 30 commits July 29, 2026 20:43
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Complete kopie van de originele Y-app broncode (frontend, server,
desktop, docs, tests, scripts) inclusief niet-gecommitteerde
bronwijzigingen. Build-artefacten, node_modules en lokale
werkruimtes zijn uitgesloten.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Vite bouwt met /files/-basis en platte assets; het deployscript
upsert de Web Page-route y-next en uploadt assets als publieke
File-documenten. Deploytoken uitsluitend via YNEXT_API_TOKEN.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Y-app-accountgate, instancetabs en Express-gebonden lagen vervangen
door een directe ERPNext-sessiebootstrap met HashRouter; niet-fase-1
routes tonen ComingSoon en serverfeatures zijn via capabilities uit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Directe count zonder instance-tak, onvoorwaardelijke SW-opruiming,
release-notes-paneel gegate, generieke NAS-placeholder en
lint-schone capabilities.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
main_section_html wordt nu meegeschreven (het veld dat Frappe bij
content_type HTML rendert) en de loader verwijdert de website-theme-
stylesheets waarvan ongelayerde utilities de Tailwind-layout braken.
Nieuw scripts/visual-check-y-next.mjs rendert routes headless met
tokenauth en rapporteert consolefouten, mislukte en verboden requests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Verkoop, financieel, projecten/HR en CRM draaien nu volledig op de
standaard Frappe API: stats-aggregatie client-side, print via de
standaard printview, Express-extraatjes achter featuregates. De
schakelkast werkt als blocklist: alleen webmail, messenger, Nextcloud,
wachtwoordkluis, meeting-notes, release-notes en extensies volgen
later. Query-velden die de instance niet kent herstellen zichzelf en
ontbrekende HR-doctypes degraderen stil.
fetchCount gebruikt frappe.client.get_count in plaats van een
SQL-aggregate die de instance weigert; niet-bestaande doctypes worden
na de eerste 404 gecachet zodat lijsten en tellingen direct leeg
terugkeren zonder herhaalde netwerk-calls.
Kanbans vallen terug op status wanneer workflow_state ontbreekt,
Verlof toont een module-onbeschikbaar-melding zonder HRMS,
child-tables gaan via frappe.client.get_list met parent-kwarg en
dashboard-widgets bereiken altijd een eindstatus.
Gantt haalt taaktoewijzingen op, grafieklabels en balkhoogtes
renderen correct, saldo wordt echt berekend, ontbrekende modules
melden zich netjes en het medewerkerveld valt terug op de sessie.
Planbord meldt de ontbrekende HRMS-module en persoonlijke uren- en
km-overzichten leggen uit wanneer er geen Employee aan het account
is gekoppeld.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
DutchSailor and others added 13 commits July 31, 2026 17:39
Y Next Setting schrijfbaar voor alleen System Manager (extensies draaien
met kijkersrechten), fetchPrivateFile same-origin, instructiekaart niet
voor niet-beheerders, release notes uitsluitend lokaal, typed feature-keys.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Custom mappen via ERPNext-tags (RPC met fallback), paginering,
zoeken, bulkacties, verwijderen, handtekening, conversaties en
wachtrijstatus — volledig mock-getest.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Minimale Tauri 2-app onder packages/android die de live /y-next laadt
in de system-webview (navigatie buiten het ERPNext-domein gaat naar de
systeembrowser, geen IPC voor de geladen pagina), met een losstaande
workflow_dispatch-workflow die de ondertekende APK als artifact bouwt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Mappenboom met eigen mappen, slepen, delete, multi-select met
bulkbalk, zoeken, paginering, bijlagenpaneel, conversatiezone,
Cc/Bcc met handtekening en reply-all, nieuwe-mail-melding en
wachtrijstatus in Verzonden.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De gastpagina rendert None als csrf_token en de browsercache
serveert die versie ook na login; mutaties normaliseren nu het token,
verversen het bij bootstrap via cache-reload en retryen precies
eenmaal met een vers token bij een CSRF-weigering.
Sidebar filtert per gebruiker op User.block_modules, doctype-
permissieprobes en configuratiesignalen zoals een actief Email
Account; de eigen employee-visible-modules-laag vervalt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Provisioning krijgt een idempotente rechtenfase (Communication-write,
ToDo-delete), permissiefouten zijn nooit meer stil, Todo kan
verwijderen, de 417-veldcache overleeft navigaties en Verkoopfacturen
opent op het lopende jaar.
Verwijderen verplaatst mail naar de native Trash-status met
terugzetten en definitief verwijderen in de Prullenbak; slepen van
en naar de prullenbak werkt; de mappenkolom toont de gesyncte
IMAP-mappen uit het Email Account.
Boekingen landen in een Urenstaat per jaar; urensaldi, overuren en
agenda tellen per boekingsregel; de Web Page rendert dynamisch zodat
browsers nooit meer een verouderde gastversie vasthouden.
De jaar-resolve neemt bestaande concepten van de medewerker over en
een duplicaatnaam geeft een herpoging plus een leesbare verwijzing
naar de naamreeks-instellingen.
@DutchSailor
DutchSailor merged commit 2f0d975 into main Aug 27, 2026
1 check failed
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