@ pknwmmky pontoporeia@happyngreen.fr 2026-05-11 14:44:19 7e8166d7 │ (no description set) ○ kmxvkmqm pontoporeia@happyngreen.fr 2026-05-11 14:36:01 3f7b2961 │ (empty) wrap licence fragment content in nested fieldset with legend ○ yupunuzo pontoporeia@happyngreen.fr 2026-05-11 14:36:01 678f1d3c │ refactor licence fragment: Libre→CC2r+licence, Interne→opt-in want_license, Interdit→none ○ pnyrukop pontoporeia@happyngreen.fr 2026-05-11 14:24:27 8cc0bc34 │ Added details and summary to the license choosing element. ○ llmtqprz pontoporeia@happyngreen.fr 2026-05-11 13:55:19 f0bf86cb │ (empty) guard syncOrderInput against undefined pond instance during FilePond init ○ mrtoqozz pontoporeia@happyngreen.fr 2026-05-11 13:55:19 b531602f │ server-side upload progress: poll /admin/actions/upload-progress.php via token; progress file written during PeerTube uploads ○ nwozruss pontoporeia@happyngreen.fr 2026-05-11 13:38:35 415a03cb │ decorelate formats from fichiers: no HTMX toggles, all slots always visible; progress bar 25/75 split; sticky formats fieldset ○ qvnunynl pontoporeia@happyngreen.fr 2026-05-11 13:33:20 1209931c │ upload progress bar: fieldset layout, accent colors, file name display, completion animation, 800ms delay before redirect ○ qlvmyvuo pontoporeia@happyngreen.fr 2026-05-11 13:24:09 24e1048a │ Bump peertube embed audio player height + remove figure for iframes in tfe.php ○ txzqmwnx pontoporeia@happyngreen.fr 2026-05-11 13:10:01 b754732c │ fix PeerTube upload: switch to simple multipart POST /api/v1/videos/upload with CURLFile; remove resumable protocol ○ surwmkqz pontoporeia@happyngreen.fr 2026-05-11 13:00:07 1b34dd14 │ fix PeerTube upload: pass original filename in init body; chunk Content-Type → application/octet-stream ○ usskovxu pontoporeia@happyngreen.fr 2026-05-11 12:53:57 8c0f90fe │ fix PeerTube init: remove waitTranscoding, add category+commentsEnabled; switch PATCH back to POSTFIELDS; remove verbose logging; clean curl_close ○ nllmqxnz pontoporeia@happyngreen.fr 2026-05-11 12:50:44 686be3c3 │ fix PeerTube PATCH: use CURLOPT_INFILE stream for binary body; global CURL_HTTP_VERSION_2_0; fix chunkNum off-by-one ○ mxqulkkl pontoporeia@happyngreen.fr 2026-05-11 12:46:02 3f28ed35 │ fix PeerTube PATCH: force HTTP/2 (CURL_HTTP_VERSION_2_0) to match init connection ○ ollozskx pontoporeia@happyngreen.fr 2026-05-11 12:43:41 ff9070c4 │ debug PeerTube PATCH 400: let curl negotiate HTTP version, log raw hex body ○ luxqovts pontoporeia@happyngreen.fr 2026-05-11 12:42:45 837f6ef9 │ debug PeerTube PATCH 400: force HTTP/1.1, set CURLOPT_INFILESIZE, log verbose tail ○ mosupsso pontoporeia@happyngreen.fr 2026-05-11 12:40:24 5989baac │ fix PeerTube upload: force HTTP/1.1 for PATCH chunks; remove deprecated CURLOPT_BINARYTRANSFER ○ nnoxlkll pontoporeia@happyngreen.fr 2026-05-11 12:38:56 d9357537 │ fix PeerTube upload: add CURLOPT_VERBOSE debug; use BINARYTRANSFER for chunk body ○ yxkvwkqy pontoporeia@happyngreen.fr 2026-05-11 12:35:54 7ea832f1 │ fix PeerTube upload: Google-resumable (Location header, PATCH), +debug logging ○ kkxkwlvw pontoporeia@happyngreen.fr 2026-05-11 12:21:45 d1213cf9 │ fix PeerTube upload: use Google-resumable protocol (Location header + PATCH) instead of PUT; capture response headers; ensure chunk size multiple of 256KB ○ usxlqwxk pontoporeia@happyngreen.fr 2026-05-11 12:09:14 7e028d3f │ Cleanup acces fichier section ○ omwsuqoy pontoporeia@happyngreen.fr 2026-05-11 11:40:50 56ab779e │ move Restrictions d'accès aux fichiers from contenus.php to acces.php ○ usmyqlwr pontoporeia@happyngreen.fr 2026-05-11 11:35:11 03c9d317 │ cleanup: merge SMTP fields into single fieldset, rename to Emails ○ rxwmppwn pontoporeia@happyngreen.fr 2026-05-11 11:28:58 5a45cb02 │ fix: remove alt labels, fix curl_close deprecation, fix PeerTube description param ○ mqoyqups pontoporeia@happyngreen.fr 2026-05-11 11:24:57 42722c21 │ feat: PeerTube channel by name, test button, always-visible FilePond pools ○ qmoswsvt pontoporeia@happyngreen.fr 2026-05-11 11:15:06 679120b6 │ feat: shared SMTP credentials + resumable PeerTube upload + embed improvements ○ sxpsrqsl pontoporeia@happyngreen.fr 2026-05-11 11:01:25 fd3ad3d3 │ feat: add PeerTube alternate audio/video labels and FilePond pools ○ qrtmmwro pontoporeia@happyngreen.fr 2026-05-11 10:31:19 2fb392f6 │ fix: make schema.sql fully idempotent — add IF NOT EXISTS to all CREATE INDEX, CREATE TRIGGER, and CREATE VIEW statements ○ pylyqurz pontoporeia@happyngreen.fr 2026-05-11 04:45:23 6745734d │ feat(backup): deploy cron-based SQLite backups to production ○ pqnovwxx pontoporeia@happyngreen.fr 2026-05-11 03:43:09 164df763 │ fix(production): fix multiple remote server errors from nginx logs ○ rxpvwzkt pontoporeia@happyngreen.fr 2026-05-11 03:43:09 cfc55073 │ feat(admin): add htmx toast feedback for settings checkboxes in contenus.php ○ sstzwlpk pontoporeia@happyngreen.fr 2026-05-11 03:35:43 677f5050 │ feat(deploy): upload deploy-server.sh, run migrations, fix migrate.sh server layout ○ mysnnsru pontoporeia@happyngreen.fr 2026-05-11 03:35:43 d6548157 │ feat(deploy): upload and run deploy-server.sh before permission verification, run migrations ○ unnmorqw pontoporeia@happyngreen.fr 2026-05-11 03:35:43 0ff5abbe │ feat(deploy): upload and run deploy-server.sh before permission verification ○ rqrkkkuo pontoporeia@happyngreen.fr 2026-05-11 03:35:43 178a8577 │ feat(deploy): add deploy-verify-permissions recipe to check ownership/permissions after rsync ○ kpvxplms pontoporeia@happyngreen.fr 2026-05-11 03:35:43 ac53d0da │ fix: settings handler was treating hidden value="0" as truthy ○ kuslmqps pontoporeia@happyngreen.fr 2026-05-11 03:35:43 97abb41b │ fix: use HTMX auto-save with hidden value=0 inputs in separate fieldsets ○ qqssmzsl pontoporeia@happyngreen.fr 2026-05-11 03:35:43 bd4d5bff │ fix: split formulaire section into separate forms to avoid cross-resets ○ tmklpprq pontoporeia@happyngreen.fr 2026-05-11 03:35:43 7a2525e0 │ fix: replace HTMX auto-save checkboxes with regular form + Enregistrer button ○ rswkvuzm pontoporeia@happyngreen.fr 2026-05-11 03:35:43 618356af │ fix: settings checkboxes could not be unchecked + could not be checked independently ○ wstuyzym pontoporeia@happyngreen.fr 2026-05-11 03:35:43 18d9bd1a │ feat: implement SQLite backup & data integrity plan (Phases 2-4) ○ ouqzmwvn pontoporeia@happyngreen.fr 2026-05-11 03:35:42 28608d2c │ feat: implement SQLite backup & data integrity plan (Phases 2-4) ○ psvklxsu pontoporeia@happyngreen.fr 2026-05-11 03:35:42 c7012c91 │ fix: exclude entire var/ from rsync --delete to preserve logs ○ nlvsnzkz pontoporeia@happyngreen.fr 2026-05-11 03:35:42 9c4138fa │ fix: add hx-swap="none" to admin auto-save checkboxes to prevent page swap ○ olzzwmwr pontoporeia@happyngreen.fr 2026-05-11 03:35:42 ae12c463 │ feat: require 3 mots-clés in partage, language asterisk toggle, admin auto-save checkboxes ○ nqmqrqmo pontoporeia@happyngreen.fr 2026-05-11 03:35:42 f6544c5d │ fix: obfuscate email in contact links, raise rate limits, make Libre toggleable ○ ryqustol pontoporeia@happyngreen.fr 2026-05-11 03:35:42 edfc1fd0 │ import dialog: add Terminé button, fix padding, make success permanent, avoid POST resend ○ snsxswsz pontoporeia@happyngreen.fr 2026-05-11 03:35:42 4be7b931 │ fix: jury-fieldset.php calling old() with wrong signature for partage ○ wpspurnq pontoporeia@happyngreen.fr 2026-05-11 03:35:42 c361702d │ Make Auteur(s) and Accès columns sortable alphabetically in admin list ○ zxryvzkv pontoporeia@happyngreen.fr 2026-05-11 03:35:42 d2570bc3 │ Improve recap page + fix CSV import for jury roles ○ vqxpnkox pontoporeia@happyngreen.fr 2026-05-10 22:20:29 9dd791cd │ fix migration 028, promoteurice repopulation, DB bootstrap ○ xznsyswm pontoporeia@happyngreen.fr 2026-05-10 22:18:05 b952709e │ FilePond production hardening ○ vqnonzxp pontoporeia@happyngreen.fr 2026-05-10 21:31:56 99c51201 │ remove accept attributes from FilePond inputs, rely on beforeAddFile validation ○ rlqsxozn pontoporeia@happyngreen.fr 2026-05-10 21:29:40 9b9445fe │ fix file validation: use extension-based check in beforeAddFile, drop plugin ○ wmzntpxp pontoporeia@happyngreen.fr 2026-05-10 21:25:45 fa1697bf │ add filepond-plugin-file-validate-type + server-side file warnings ○ stmuuwmv pontoporeia@happyngreen.fr 2026-05-10 21:19:58 ccdf1c36 │ add server-side video/audio size limits (2 GB) and fix missing annexe queue validation ○ tqwpzqtq pontoporeia@happyngreen.fr 2026-05-10 21:10:51 2524574a │ (no description set) ○ wvkvvpmv pontoporeia@happyngreen.fr 2026-05-10 21:06:35 dc099a5f │ fix annexe validation, FilePond type validation, and styling ○ rptplqsr pontoporeia@happyngreen.fr 2026-05-10 21:06:35 703b5dc2 │ Add FilePond pools for couverture, note_intention, video, audio ○ zmvkxops pontoporeia@happyngreen.fr 2026-05-10 21:06:35 39ce6dbf │ (no description set) ○ yuuqpnwp pontoporeia@happyngreen.fr 2026-05-10 21:06:34 558d7c06 │ Fix FilePond integration: decouple format extras from main file inputs ○ ztztkrsu pontoporeia@happyngreen.fr 2026-05-10 21:06:34 017e2657 │ (no description set) ○ qwltvwqq pontoporeia@happyngreen.fr 2026-05-10 21:06:34 fe503dcd │ Replace custom file-upload-queue.js with FilePond ○ pnotuyzv pontoporeia@happyngreen.fr 2026-05-10 21:06:34 191d2d7a │ (no description set) ○ urrtosru pontoporeia@happyngreen.fr 2026-05-10 21:06:34 02272555 │ fix: stop checkbox click in admin index from navigating to recapitulatif ○ ymrzpvln pontoporeia@happyngreen.fr 2026-05-10 21:06:34 2ec34999 │ fix: spurious HTMX console warnings from checkbox-list default hx-include ○ muzswpkw pontoporeia@happyngreen.fr 2026-05-10 21:06:34 404696bf │ fix: repair form submission with queued files + add comprehensive debug logging ○ ownwlmpo pontoporeia@happyngreen.fr 2026-05-10 21:06:34 6e99f3e9 │ Replace HTMX+PHP file upload queues with client-side JS ○ xlprulto pontoporeia@happyngreen.fr 2026-05-10 21:06:34 52ee3530 │ Replace HTMX+PHP file upload queues with client-side JS ○ qukzomwx pontoporeia@happyngreen.fr 2026-05-10 21:06:34 0e31760f │ Replace HTMX+PHP file upload queues with client-side JS ○ mqnvolnz pontoporeia@happyngreen.fr 2026-05-10 21:06:34 db300c32 │ Replace HTMX+PHP file upload queues with client-side JS ○ utnzmtom pontoporeia@happyngreen.fr 2026-05-10 21:06:34 e2cd7804 │ Replace HTMX+PHP file upload queues with client-side JS ○ yrpmtrsy pontoporeia@happyngreen.fr 2026-05-10 16:35:04 0b59d667 │ fix: scoped HTMX file validation, add validation to TFE/PeerTube inputs ○ mxvvqust pontoporeia@happyngreen.fr 2026-05-10 16:32:34 a66ff5c1 │ refactor: session-based incremental TFE upload via HTMX, drop SortableJS ○ uvnvvyny pontoporeia@happyngreen.fr 2026-05-10 15:55:35 04c1c3c6 │ fix: req annexes, add HTMX inline file validation (MIME/size) ○ yztqkpzz pontoporeia@happyngreen.fr 2026-05-10 15:31:02 dd64d5c9 │ fix: TFE and annexes files not saved, plus keyword validation and file preview CSS ○ roqtyzln pontoporeia@happyngreen.fr 2026-05-10 15:05:24 94f0df20 │ feat: obfuscate all email addresses and mailto links as HTML entities ○ svprwkko pontoporeia@happyngreen.fr 2026-05-10 14:51:25 a90b8b4d │ fix: add help email, preserve file names on validation error, license fix ○ kvyyvksn pontoporeia@happyngreen.fr 2026-05-10 14:51:25 bbfd786c │ fix: add help email, preserve file names on validation error, license fix ○ moumuszm pontoporeia@happyngreen.fr 2026-05-10 14:26:45 ab4601b9 │ Fix language-search fragment ○ xvqonoyt pontoporeia@happyngreen.fr 2026-05-10 14:26:45 64b18fdb │ Add sidebar TOC, simplify Données Secondaires section ○ tyotlpxt pontoporeia@happyngreen.fr 2026-05-10 14:26:45 22799820 │ Add Mots-clés and Langues management to contenus page ○ sntroxlt pontoporeia@happyngreen.fr 2026-05-10 14:26:45 47670245 │ Move Formulaire settings to contenus, remove delete-all TFE ○ qxuprqpt pontoporeia@happyngreen.fr 2026-05-10 14:26:45 1b5d0db6 │ Add language-search component for Autre Langue input + active search in lists ○ sttrwkly pontoporeia@happyngreen.fr 2026-05-10 14:26:45 58623625 │ CSV importer: boolean and ap variants/typos ○ pntwsqvs pontoporeia@happyngreen.fr 2026-05-10 14:26:45 b83b316e │ Rename author_email→contact_interne, author_show_contact→contact_public across view/controllers/templates ○ vpwuyvyv pontoporeia@happyngreen.fr 2026-05-10 14:26:45 43cf6b4b │ Fix: email clearing in findOrCreateAuthor, htmlspecialchars(null) crash in old(), dead contact_interne field, access_type_id radio clearing ○ szktqmnn pontoporeia@happyngreen.fr 2026-05-10 14:26:45 809d77b1 │ Error tests, FK violations fix ○ unnnvyqs pontoporeia@happyngreen.fr 2026-05-10 14:26:45 6ca873c8 │ Admin mobile block: fix inline style beating media query ○ nzllwsxo pontoporeia@happyngreen.fr 2026-05-10 14:26:45 ba41cc9e │ Fix bulk form nesting, remove count bar, stopPropagation on actions ○ vumvtlyz pontoporeia@happyngreen.fr 2026-05-10 14:26:45 efd01b93 │ Rename Liens étudiant·e, add link name + edit dialog ○ somsyvxz pontoporeia@happyngreen.fr 2026-05-10 14:26:45 c8be0aae │ Bulk bar anti-shift, tags icons, AP no-wrap, credits reorder ○ zlkousvq pontoporeia@happyngreen.fr 2026-05-10 14:26:45 73ef6301 │ Add back buttons, row click navigation, remove Voir button ○ zmuyukuk pontoporeia@happyngreen.fr 2026-05-10 14:26:45 db021566 │ Replace emoji/text buttons with Phosphor SVG icons, add credits ○ kxwyyswm pontoporeia@happyngreen.fr 2026-05-10 14:26:45 92cea357 │ Replace large admin index script with minimal JS ○ pkrnmpks pontoporeia@happyngreen.fr 2026-05-10 14:26:45 30ef10fd │ Move export DB to Exporter modal, color stats ○ turvpxsq pontoporeia@happyngreen.fr 2026-05-10 14:26:45 b2b09243 │ Refactor: Admin index ○ yxpntrsp pontoporeia@happyngreen.fr 2026-05-10 14:26:45 dff6e2af │ add explanation hint to is_published checkbox in Backoffice fieldset ○ ntmqzyop pontoporeia@happyngreen.fr 2026-05-10 14:26:45 f6b4ac09 │ Merge Publication fieldset's is_published checkbox into Backoffice fieldset ○ rtqxvoqk pontoporeia@happyngreen.fr 2026-05-10 14:26:45 cc65b385 │ Remove duration_pages/duration_minutes/file_size_info; rename cc4r → cc2r in DB and code ○ klpxpwlm pontoporeia@happyngreen.fr 2026-05-10 14:26:45 adf080d1 │ fix: resolve partage form submission issues ○ ruznqknn pontoporeia@happyngreen.fr 2026-05-10 14:26:45 8eebf684 │ css: moved + tweaked styles to common.css ○ mttylpmt pontoporeia@happyngreen.fr 2026-05-10 14:26:45 cbef12b5 │ link creation: fieldset with checkboxes for objet restriction, TFE checked by default ○ wwrwtomz pontoporeia@happyngreen.fr 2026-05-10 14:26:45 dd133522 │ switch thesis-add-header to grid layout: title | badge, subtitle spans full width ○ oolsxuow pontoporeia@happyngreen.fr 2026-05-10 14:26:45 d7ff6b42 │ Update: subtitle below header + top gradient ○ vnprsrzm pontoporeia@happyngreen.fr 2026-05-10 14:26:45 23ec2c7b │ remove duplicate Image de couverture in edit form — moved cover preview+removal into fichiers-fragment.php, removed duplicate from edit-existing-files-block ○ ztkmwwkl pontoporeia@happyngreen.fr 2026-05-10 14:26:45 c0668225 │ .env and todo ○ toqvqlop pontoporeia@happyngreen.fr 2026-05-10 14:26:45 1fdd450f │ overtype editor rounded corners ○ mswkvnyl pontoporeia@happyngreen.fr 2026-05-10 14:26:45 d87158db │ Cleanup and normalize headers ○ uxqyvyvt pontoporeia@happyngreen.fr 2026-05-10 14:26:45 f1e2651f │ refactor public search bar ○ xvtqzyom pontoporeia@happyngreen.fr 2026-05-10 14:26:45 58521915 │ Redesign focus rings ○ vrqmwvrx pontoporeia@happyngreen.fr 2026-05-10 14:26:45 10cfa469 │ unify form element styles in common.css ○ rvvmuxsz pontoporeia@happyngreen.fr 2026-05-10 14:25:53 0be7f533 │ style: tweaking admin section + some public ○ towstynu pontoporeia@happyngreen.fr 2026-05-09 14:44:48 b7ff2776 │ EDIT THIS → refactor: unify edit mode Format+Fichiers with add/partage HTMX fragment ○ qnttznqt pontoporeia@happyngreen.fr 2026-05-09 14:44:48 3cdd3893 │ Refactor: Form improvements and cleanup: note contextuel, annexes, fichiers ○ wqmrrrwu pontoporeia@happyngreen.fr 2026-05-09 14:44:48 a8aeb0d6 │ feat: dual upload system — direct file storage + PeerTube API integration ○ nsnurqzv pontoporeia@happyngreen.fr 2026-05-09 14:44:48 5fbd6243 │ fix: justfile shebang recipes indentation (spaces → tabs) ○ rqzyxzyt pontoporeia@happyngreen.fr 2026-05-09 14:44:48 4c030bd5 │ Refactor + feat: unify format/fichiers HTMX fragment, reorder format types, add file constraints, fix admin auth ○ muzruvwl pontoporeia@happyngreen.fr 2026-05-09 14:44:48 7bedda02 │ Encrypt SMTP password at rest with AES-256-GCM ○ ovqmwmol pontoporeia@happyngreen.fr 2026-05-09 14:42:07 627b0c4e │ Remove required from all admin add/edit form inputs ○ vpomqrst pontoporeia@happyngreen.fr 2026-05-08 22:58:25 b8331a08 │ fix: replace .php-suffixed public URLs blocked by nginx catch-all ○ qnxltqyq pontoporeia@happyngreen.fr 2026-05-08 22:58:25 189f4368 │ fix: 403 on /language-autre-fragment.php — add explicit nginx location block ○ nslznwmk pontoporeia@happyngreen.fr 2026-05-08 22:58:25 6ba13e00 │ test: add ShareLinkTest + PureLogicTest (TDD), fix coverMap undefined in SearchController ○ nvntmkyx pontoporeia@happyngreen.fr 2026-05-08 22:58:25 15d54fa1 │ add Néerlandais language option and make language_autre conditionally required ○ qxqyzmzp pontoporeia@happyngreen.fr 2026-05-08 22:58:25 f3d96155 │ merge banners into covers: remove banner field, migrate files, add covers to search/home/repertoire cards ○ rxnnnvpu pontoporeia@happyngreen.fr 2026-05-08 22:58:05 e3896811 │ Fix migrations and deploy issues + errors + linting ◆ pqntkzml pontoporeia@happyngreen.fr 2026-05-07 23:39:41 main bdd95341 │ Extract shared TFE form partial — single source of truth for add/edit/partage ~