Forgejo-Timetracking-Dashboard/.cache/data.json
2026-07-13 17:31:23 +02:00

1 line
No EOL
155 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[{"id":9,"created":"2026-06-08T15:45:00+02:00","time":323,"user_id":10,"user_name":"Oracle","issue_id":1593,"issue":{"id":1593,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/11","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/11","number":11,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Inspect","body":"inspect this repo and report back, what this app does","ref":"","assets":[],"labels":[{"id":1137,"name":"documentation","exclusive":false,"is_archived":false,"color":"0075ca","description":"Improvements or additions to documentation","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1137"}],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":3,"created_at":"2026-06-08T10:24:03+02:00","updated_at":"2026-06-08T16:59:27+02:00","closed_at":"2026-06-08T16:59:27+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":12,"created":"2026-06-09T10:26:20+02:00","time":60,"user_id":10,"user_name":"Oracle","issue_id":1683,"issue":{"id":1683,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/39","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/39","number":39,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Dependency safety 3.7.0 ist Inkompatibel mit safety-schemas 0.0.18","body":"Commit 0f28f14067 updated safety-schemas auf 0.0.18, safety 3.7.0 hat allerdings safety-schemas 0.0.16 als dependency was zu einem Konflikt führt bei ``pip install -r requirements-dev``\nDies betrifft nur main und nicht staging\n\n```\nERROR: Cannot install -r requirements-dev.txt (line 9) and safety-schemas==0.0.18 because these package versions have conflicting dependencies.\n\nThe conflict is caused by:\n The user requested safety-schemas==0.0.18\n safety 3.7.0 depends on safety-schemas==0.0.16\n```","ref":"","assets":[],"labels":[{"id":1134,"name":"bug","exclusive":false,"is_archived":false,"color":"d73a4a","description":"Something isn't working","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1134"}],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":3,"created_at":"2026-06-09T10:23:56+02:00","updated_at":"2026-06-09T10:33:23+02:00","closed_at":"2026-06-09T10:33:23+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":15,"created":"2026-06-09T13:32:14+02:00","time":8584,"user_id":10,"user_name":"Oracle","issue_id":1668,"issue":{"id":1668,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/34","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/34","number":34,"user":{"id":45,"login":"max.bublitz","login_name":"","source_id":0,"full_name":"","email":"max.bublitz@vectorsearch.media","avatar_url":"https://bitfreedom.net/code/avatars/c9d573f6e5fa423bca0d70f9b1c7771b","html_url":"https://bitfreedom.net/code/max.bublitz","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-06-08T09:11:57+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"max.bublitz"},"original_author":"","original_author_id":0,"title":"Cron Job für BrightData Spyder","body":"Hallo Otis,\r\n\r\nfreut mich, dass du nun dabei bist! Hier kommt dein erstes Briefing. Ich häng dir auch ein paar Screenshots mit dran, damit du siehst, wovon ich rede — du kennst das Tool ja noch nicht in- und auswendig, das kommt mit der Zeit.\r\n\r\nKurz zum Tool: Wir schicken Prompts an die KI-Engines (ChatGPT, Google AI Mode) und tracken, welche URLs zitiert werden — das läuft über BrightData. Diese Tracking-Läufe stoßen wir heute immer von Hand an. Genau da kommst du ins Spiel.\r\n\r\nDeine Aufgabe — der Cronjob:\r\n\r\nUnter Client Basic → Tab Tracking gibt es pro Plattform schon Felder: einen Aktiv-Schalter, eine Frequenz (Einmalig usw.), Start und Ende. Die sind aktuell reine Dummies ohne Funktion. Die sollen echt werden — damit man pro Kunde einen automatischen, wiederkehrenden Lauf einstellen kann. Das nennen wir den Cronjob: einmal eingestellt, läuft das Tracking von selbst zur eingestellten Frequenz, ohne dass jemand klicken muss. Der manuelle Trigger bleibt daneben natürlich weiter bestehen.\r\nWichtig: 5a und 11a bleiben genau so, wie sie sind — da änderst du nichts. Die Logik dahinter nutzt du nur wieder; der Cronjob ruft am Ende dieselbe Funktion auf wie der manuelle Button.\r\n\r\nNeue Tabelle:\r\nSetz für den Cronjob eine eigene neue Tabelle auf, benannt nach 5a + Cronjob — also z. B. a5_cronjob (passt zu unseren bestehenden a5_-Tabellen). Da rein kommt die Konfiguration: Kunde, Plattform, aktiv/inaktiv, Frequenz, Start, Ende, letzter Lauf, nächster Lauf.\r\nZwei Ansichten brauche ich dazu:\r\n\r\nIm Admin-Bereich eine Übersicht über alle Cronjobs aller Kunden — damit ich auf einen Blick sehe, was wo läuft, ohne mich durch jeden Kunden einzeln klicken zu müssen.\r\nAuf Kundenebene eine eigene Seite, die den Cronjob dieses Kunden anzeigt — und gleich auch die Results dazu.\r\n\r\nAnmerkungen: \r\n- Zum Testen nimm einfach den Kunden Gut Personalmangament. Das ist ein Dummy, da kannst du machen was du möchtest \r\n- Erweitere bitte die Gui funktion bei Client Basic. Ich möcht hier ein Schalte haben wo ich auswählen kann ob wir alle Prompts spydern oder nur welche die auf aktiv geschaltet sind. \r\n- Du kannst gerne Test auf der API fahren, die Kosten für 1.000 Prompt abfragen sind marginal\r\n\r\nBei Fragen einfach melden.\r\nViele Grüße\r\nMax","ref":"","assets":[{"id":3,"name":"2026-06-09_07h31_54.png","size":10178,"download_count":59,"created_at":"2026-06-09T08:03:37+02:00","uuid":"5e32d2dc-13dc-4f72-bada-91bfd57df738","browser_download_url":"https://bitfreedom.net/code/attachments/5e32d2dc-13dc-4f72-bada-91bfd57df738","type":"attachment"},{"id":6,"name":"2026-06-09_07h30_41.png","size":72431,"download_count":61,"created_at":"2026-06-09T08:03:41+02:00","uuid":"debe38f9-f83b-4d67-90a6-a2d7e6d194f3","browser_download_url":"https://bitfreedom.net/code/attachments/debe38f9-f83b-4d67-90a6-a2d7e6d194f3","type":"attachment"},{"id":9,"name":"2026-06-09_07h28_44.png","size":82732,"download_count":62,"created_at":"2026-06-09T08:03:46+02:00","uuid":"d4207784-1c77-4d40-a48b-a1fa9c16614d","browser_download_url":"https://bitfreedom.net/code/attachments/d4207784-1c77-4d40-a48b-a1fa9c16614d","type":"attachment"}],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-06-09T08:08:58+02:00","updated_at":"2026-06-11T12:52:10+02:00","closed_at":"2026-06-11T12:52:10+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":18,"created":"2026-06-09T15:48:12+02:00","time":6485,"user_id":10,"user_name":"Oracle","issue_id":1668,"issue":{"id":1668,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/34","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/34","number":34,"user":{"id":45,"login":"max.bublitz","login_name":"","source_id":0,"full_name":"","email":"max.bublitz@vectorsearch.media","avatar_url":"https://bitfreedom.net/code/avatars/c9d573f6e5fa423bca0d70f9b1c7771b","html_url":"https://bitfreedom.net/code/max.bublitz","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-06-08T09:11:57+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"max.bublitz"},"original_author":"","original_author_id":0,"title":"Cron Job für BrightData Spyder","body":"Hallo Otis,\r\n\r\nfreut mich, dass du nun dabei bist! Hier kommt dein erstes Briefing. Ich häng dir auch ein paar Screenshots mit dran, damit du siehst, wovon ich rede — du kennst das Tool ja noch nicht in- und auswendig, das kommt mit der Zeit.\r\n\r\nKurz zum Tool: Wir schicken Prompts an die KI-Engines (ChatGPT, Google AI Mode) und tracken, welche URLs zitiert werden — das läuft über BrightData. Diese Tracking-Läufe stoßen wir heute immer von Hand an. Genau da kommst du ins Spiel.\r\n\r\nDeine Aufgabe — der Cronjob:\r\n\r\nUnter Client Basic → Tab Tracking gibt es pro Plattform schon Felder: einen Aktiv-Schalter, eine Frequenz (Einmalig usw.), Start und Ende. Die sind aktuell reine Dummies ohne Funktion. Die sollen echt werden — damit man pro Kunde einen automatischen, wiederkehrenden Lauf einstellen kann. Das nennen wir den Cronjob: einmal eingestellt, läuft das Tracking von selbst zur eingestellten Frequenz, ohne dass jemand klicken muss. Der manuelle Trigger bleibt daneben natürlich weiter bestehen.\r\nWichtig: 5a und 11a bleiben genau so, wie sie sind — da änderst du nichts. Die Logik dahinter nutzt du nur wieder; der Cronjob ruft am Ende dieselbe Funktion auf wie der manuelle Button.\r\n\r\nNeue Tabelle:\r\nSetz für den Cronjob eine eigene neue Tabelle auf, benannt nach 5a + Cronjob — also z. B. a5_cronjob (passt zu unseren bestehenden a5_-Tabellen). Da rein kommt die Konfiguration: Kunde, Plattform, aktiv/inaktiv, Frequenz, Start, Ende, letzter Lauf, nächster Lauf.\r\nZwei Ansichten brauche ich dazu:\r\n\r\nIm Admin-Bereich eine Übersicht über alle Cronjobs aller Kunden — damit ich auf einen Blick sehe, was wo läuft, ohne mich durch jeden Kunden einzeln klicken zu müssen.\r\nAuf Kundenebene eine eigene Seite, die den Cronjob dieses Kunden anzeigt — und gleich auch die Results dazu.\r\n\r\nAnmerkungen: \r\n- Zum Testen nimm einfach den Kunden Gut Personalmangament. Das ist ein Dummy, da kannst du machen was du möchtest \r\n- Erweitere bitte die Gui funktion bei Client Basic. Ich möcht hier ein Schalte haben wo ich auswählen kann ob wir alle Prompts spydern oder nur welche die auf aktiv geschaltet sind. \r\n- Du kannst gerne Test auf der API fahren, die Kosten für 1.000 Prompt abfragen sind marginal\r\n\r\nBei Fragen einfach melden.\r\nViele Grüße\r\nMax","ref":"","assets":[{"id":3,"name":"2026-06-09_07h31_54.png","size":10178,"download_count":59,"created_at":"2026-06-09T08:03:37+02:00","uuid":"5e32d2dc-13dc-4f72-bada-91bfd57df738","browser_download_url":"https://bitfreedom.net/code/attachments/5e32d2dc-13dc-4f72-bada-91bfd57df738","type":"attachment"},{"id":6,"name":"2026-06-09_07h30_41.png","size":72431,"download_count":61,"created_at":"2026-06-09T08:03:41+02:00","uuid":"debe38f9-f83b-4d67-90a6-a2d7e6d194f3","browser_download_url":"https://bitfreedom.net/code/attachments/debe38f9-f83b-4d67-90a6-a2d7e6d194f3","type":"attachment"},{"id":9,"name":"2026-06-09_07h28_44.png","size":82732,"download_count":62,"created_at":"2026-06-09T08:03:46+02:00","uuid":"d4207784-1c77-4d40-a48b-a1fa9c16614d","browser_download_url":"https://bitfreedom.net/code/attachments/d4207784-1c77-4d40-a48b-a1fa9c16614d","type":"attachment"}],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-06-09T08:08:58+02:00","updated_at":"2026-06-11T12:52:10+02:00","closed_at":"2026-06-11T12:52:10+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":23,"created":"2026-06-10T14:27:41+02:00","time":1320,"user_id":10,"user_name":"Oracle","issue_id":1701,"issue":{"id":1701,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/45","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/45","number":45,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"PR für #34","body":"Short summary:\r\n\r\n2 commits, 8 files, +932 / -38 lines — Cronjob scheduling system:\r\nNew files\r\n- cron_executor.py — APScheduler-based background scheduler. Polls a5_cronjob every 30s, supports PID-based locking across gunicorn workers, handles both trigger and fetch phases\r\n- Pages/admin_cronjobs.py — Admin page showing all cronjobs across all clients with toggle/run controls\r\n- Pages/setup_cronjobs.py — Client-side cronjobs page (per-client view)\r\n- migrations/087_a5_cronjob.sql — a5_cronjob table with C_ID, Platform, Frequency, date windows, run tracking, PID lock\r\nModified files\r\n- app.py — Registers new pages, adds sidebar nav links, starts/shuts down scheduler at startup/exit\r\n- Pages/setup_tracking.py — Extracts execute_trigger() and _cron_fetch() as callable functions (no decorator), adds is_cron flag to trigger_jobs so run type is tracked as 'cron' vs 'manual'\r\n- Pages/setup_client_basic.py — Adds _upsert_cronjob() helper, syncs a5_cronjob rows when tracking configs are saved\r\n- requirements.txt — Adds apscheduler==3.10.4","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":5,"created_at":"2026-06-09T16:01:15+02:00","updated_at":"2026-06-17T15:56:45+02:00","closed_at":"2026-06-10T14:47:02+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-10T14:47:03+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/45"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":24,"created":"2026-06-11T15:28:33+02:00","time":1159,"user_id":10,"user_name":"Oracle","issue_id":1689,"issue":{"id":1689,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/41","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/41","number":41,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Tests","body":"Es existieren bis dato keine Tests.\r\nBei der Komplexität dieser App sollten wir über:\r\n\r\n- unit tests\r\n- integration tests\r\n- non-integration tests \r\n\r\nnachdenken, um zukünftig Wartung und Entwicklung zu vereinfachen.","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":1,"created_at":"2026-06-09T14:21:35+02:00","updated_at":"2026-06-15T13:15:20+02:00","closed_at":"2026-06-15T13:15:20+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":27,"created":"2026-06-11T17:31:19+02:00","time":3411,"user_id":10,"user_name":"Oracle","issue_id":1689,"issue":{"id":1689,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/41","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/41","number":41,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Tests","body":"Es existieren bis dato keine Tests.\r\nBei der Komplexität dieser App sollten wir über:\r\n\r\n- unit tests\r\n- integration tests\r\n- non-integration tests \r\n\r\nnachdenken, um zukünftig Wartung und Entwicklung zu vereinfachen.","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":1,"created_at":"2026-06-09T14:21:35+02:00","updated_at":"2026-06-15T13:15:20+02:00","closed_at":"2026-06-15T13:15:20+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":30,"created":"2026-06-12T14:25:49+02:00","time":316,"user_id":10,"user_name":"Oracle","issue_id":1767,"issue":{"id":1767,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/55","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/55","number":55,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Add tests","body":"# Still WIP dont review yet\r\nPR for adding tests using pytest, also allows for running tests in parallel with pytest-xdist when test amount gets bigger. Hurts time to run tests on low amount but greatly helps at higher amounts","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-11T17:35:52+02:00","updated_at":"2026-06-17T15:56:41+02:00","closed_at":"2026-06-15T09:51:00+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-15T09:51:00+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/55"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":33,"created":"2026-06-12T15:52:27+02:00","time":3035,"user_id":10,"user_name":"Oracle","issue_id":1767,"issue":{"id":1767,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/55","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/55","number":55,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Add tests","body":"# Still WIP dont review yet\r\nPR for adding tests using pytest, also allows for running tests in parallel with pytest-xdist when test amount gets bigger. Hurts time to run tests on low amount but greatly helps at higher amounts","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-11T17:35:52+02:00","updated_at":"2026-06-17T15:56:41+02:00","closed_at":"2026-06-15T09:51:00+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-15T09:51:00+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/55"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":36,"created":"2026-06-15T13:33:33+02:00","time":3600,"user_id":10,"user_name":"Oracle","issue_id":1971,"issue":{"id":1971,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/108","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/108","number":108,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Local Dev Environment","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-15T13:33:22+02:00","updated_at":"2026-06-15T13:33:39+02:00","closed_at":"2026-06-15T13:33:39+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":39,"created":"2026-06-15T14:08:32+02:00","time":1918,"user_id":10,"user_name":"Oracle","issue_id":1818,"issue":{"id":1818,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/67","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/67","number":67,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Zeiterfassung: Technische Redakteure","body":"Use Case:\r\nTechnische Redakteure werden in Galaxy arbeiten und Content erstellen, bearbeiten, Auswertungen vornehmen etc.\r\n\r\nUser Story:\r\nDas Tool benötigt ein Zeiterfassungssystem, damit die Arbeitszeit je User mit der Rolle \"Editor\" (Rolle muss angelegt werden) erfasst werden kann.\r\n\r\nDie Rolle Admin, soll im Admin-Bereich des Menus, eine Auswertung der Zeitaufwände in einem neu zu erstellenden Dashboard vornehmen können.","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-06-12T15:24:10+02:00","updated_at":"2026-06-18T10:18:30+02:00","closed_at":"2026-06-18T10:18:30+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":42,"created":"2026-06-15T17:24:58+02:00","time":10184,"user_id":10,"user_name":"Oracle","issue_id":1818,"issue":{"id":1818,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/67","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/67","number":67,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Zeiterfassung: Technische Redakteure","body":"Use Case:\r\nTechnische Redakteure werden in Galaxy arbeiten und Content erstellen, bearbeiten, Auswertungen vornehmen etc.\r\n\r\nUser Story:\r\nDas Tool benötigt ein Zeiterfassungssystem, damit die Arbeitszeit je User mit der Rolle \"Editor\" (Rolle muss angelegt werden) erfasst werden kann.\r\n\r\nDie Rolle Admin, soll im Admin-Bereich des Menus, eine Auswertung der Zeitaufwände in einem neu zu erstellenden Dashboard vornehmen können.","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-06-12T15:24:10+02:00","updated_at":"2026-06-18T10:18:30+02:00","closed_at":"2026-06-18T10:18:30+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":45,"created":"2026-06-16T16:15:07+02:00","time":8,"user_id":10,"user_name":"Oracle","issue_id":2025,"issue":{"id":2025,"url":"https://bitfreedom.net/code/api/v1/repos/Oracle/Helios-Detection-Testing/issues/1","html_url":"https://bitfreedom.net/code/Oracle/Helios-Detection-Testing/issues/1","number":1,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"test","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-16T16:14:54+02:00","updated_at":"2026-06-16T16:15:16+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":315,"name":"Helios-Detection-Testing","owner":"Oracle","full_name":"Oracle/Helios-Detection-Testing"},"pin_order":0}},{"id":48,"created":"2026-06-16T16:15:16+02:00","time":600,"user_id":10,"user_name":"Oracle","issue_id":2025,"issue":{"id":2025,"url":"https://bitfreedom.net/code/api/v1/repos/Oracle/Helios-Detection-Testing/issues/1","html_url":"https://bitfreedom.net/code/Oracle/Helios-Detection-Testing/issues/1","number":1,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"test","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":null,"assignees":null,"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-16T16:14:54+02:00","updated_at":"2026-06-16T16:15:16+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":315,"name":"Helios-Detection-Testing","owner":"Oracle","full_name":"Oracle/Helios-Detection-Testing"},"pin_order":0}},{"id":51,"created":"2026-06-16T16:36:09+02:00","time":720,"user_id":10,"user_name":"Oracle","issue_id":1998,"issue":{"id":1998,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/115","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115","number":115,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Add feat/editor-timetracking for issue #67","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-15T17:27:43+02:00","updated_at":"2026-06-18T10:15:05+02:00","closed_at":"2026-06-18T10:15:04+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T10:15:04+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":54,"created":"2026-06-16T17:28:40+02:00","time":2659,"user_id":10,"user_name":"Oracle","issue_id":1998,"issue":{"id":1998,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/115","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115","number":115,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Add feat/editor-timetracking for issue #67","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-15T17:27:43+02:00","updated_at":"2026-06-18T10:15:05+02:00","closed_at":"2026-06-18T10:15:04+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T10:15:04+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":57,"created":"2026-06-16T17:40:49+02:00","time":177,"user_id":10,"user_name":"Oracle","issue_id":1998,"issue":{"id":1998,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/115","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115","number":115,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Add feat/editor-timetracking for issue #67","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-15T17:27:43+02:00","updated_at":"2026-06-18T10:15:05+02:00","closed_at":"2026-06-18T10:15:04+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T10:15:04+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":60,"created":"2026-06-16T18:02:01+02:00","time":600,"user_id":10,"user_name":"Oracle","issue_id":2037,"issue":{"id":2037,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/123","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/123","number":123,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Fix test_csrf paths to use APP_BASE_PATH","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":null,"assignees":null,"state":"closed","is_locked":false,"comments":1,"created_at":"2026-06-16T17:57:41+02:00","updated_at":"2026-06-17T15:56:03+02:00","closed_at":"2026-06-16T18:11:25+02:00","due_date":null,"pull_request":{"merged":false,"merged_at":null,"draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/123"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":63,"created":"2026-06-17T15:39:22+02:00","time":1020,"user_id":10,"user_name":"Oracle","issue_id":1998,"issue":{"id":1998,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/115","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115","number":115,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Add feat/editor-timetracking for issue #67","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-15T17:27:43+02:00","updated_at":"2026-06-18T10:15:05+02:00","closed_at":"2026-06-18T10:15:04+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T10:15:04+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":66,"created":"2026-06-17T15:51:07+02:00","time":699,"user_id":10,"user_name":"Oracle","issue_id":1998,"issue":{"id":1998,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/115","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115","number":115,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Add feat/editor-timetracking for issue #67","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-15T17:27:43+02:00","updated_at":"2026-06-18T10:15:05+02:00","closed_at":"2026-06-18T10:15:04+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T10:15:04+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/115"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":69,"created":"2026-06-17T16:04:00+02:00","time":1320,"user_id":10,"user_name":"Oracle","issue_id":2073,"issue":{"id":2073,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/128","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/128","number":128,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Fix wrong Dash Table property for dark color","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":null,"assignees":null,"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-17T16:03:45+02:00","updated_at":"2026-06-18T12:36:33+02:00","closed_at":"2026-06-18T06:11:41+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T06:11:42+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/128"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":72,"created":"2026-06-18T14:26:19+02:00","time":540,"user_id":10,"user_name":"Oracle","issue_id":2094,"issue":{"id":2094,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/132","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/132","number":132,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Fix e2e tests","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-18T14:24:57+02:00","updated_at":"2026-06-18T16:06:54+02:00","closed_at":"2026-06-18T16:06:54+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T16:06:54+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/132"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":75,"created":"2026-06-18T14:52:57+02:00","time":660,"user_id":10,"user_name":"Oracle","issue_id":2094,"issue":{"id":2094,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/132","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/132","number":132,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Fix e2e tests","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":0,"created_at":"2026-06-18T14:24:57+02:00","updated_at":"2026-06-18T16:06:54+02:00","closed_at":"2026-06-18T16:06:54+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-18T16:06:54+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/132"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":78,"created":"2026-06-22T14:23:38+02:00","time":3716,"user_id":10,"user_name":"Oracle","issue_id":2085,"issue":{"id":2085,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/130","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/130","number":130,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Extend time tracking by c_id","body":"Intercept c_id data from menu if timetracking is active and log c_id with timestamps, when user switches client.","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":1,"created_at":"2026-06-18T10:16:41+02:00","updated_at":"2026-06-23T10:29:30+02:00","closed_at":"2026-06-23T10:29:29+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":81,"created":"2026-06-22T16:01:21+02:00","time":1646,"user_id":10,"user_name":"Oracle","issue_id":2085,"issue":{"id":2085,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/130","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/130","number":130,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Extend time tracking by c_id","body":"Intercept c_id data from menu if timetracking is active and log c_id with timestamps, when user switches client.","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":1,"created_at":"2026-06-18T10:16:41+02:00","updated_at":"2026-06-23T10:29:30+02:00","closed_at":"2026-06-23T10:29:29+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":86,"created":"2026-06-24T12:48:36+02:00","time":3969,"user_id":10,"user_name":"Oracle","issue_id":2204,"issue":{"id":2204,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/141","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/141","number":141,"user":{"id":45,"login":"max.bublitz","login_name":"","source_id":0,"full_name":"","email":"max.bublitz@vectorsearch.media","avatar_url":"https://bitfreedom.net/code/avatars/c9d573f6e5fa423bca0d70f9b1c7771b","html_url":"https://bitfreedom.net/code/max.bublitz","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-06-08T09:11:57+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"max.bublitz"},"original_author":"","original_author_id":0,"title":"CronJob Issue","body":"Hallo Otis,\r\n\r\nich habe bei Aida c_id=261052 ein Cronjob lauf. Es schein so, dass die Daten leider nicht sauber reinlaufen. Claude sagt folgendes: # 🐞 Cron-Tracking: Ergebnisse kommen nicht zuverlässig rein (Runs hängen auf `triggered`)\r\n\r\n**Komponente:** Prompt Tracking / Cron-Executor\r\n**Priorität:** Hoch (Reporting-Daten für Kunden unvollständig)\r\n**Betroffen:** Alle Cron-getriggerten Tracking-Runs (`Run_Type='cron'`, `Tracking_Source='basic'`)\r\n**Reproduziert an:** Kunde `C_ID=261052` (AIDA), Zeitraum 21.24.06.2026\r\n\r\n---\r\n\r\n## 1. Zusammenfassung\r\n\r\nCron-Tracking-Jobs werden bei BrightData **angestoßen**, aber die Ergebnisse werden\r\n**nicht zuverlässig abgeholt und gespeichert**. Die Runs bleiben dauerhaft im Status\r\n`triggered` mit `Result_Count = 0` und `Finished_At = NULL`; die zugehörigen\r\n`a5_tracking_result`-Zeilen bleiben auf `pending` stehen. Im Reporting (Prompt\r\nTracking → Visibility) erscheinen dadurch leere Runs (0 % Visibility), während die\r\n„Tag\"-Aggregation das Problem versteckt.\r\n\r\nZusätzlich entstehen **Duplikat-Runs** (mehr Runs pro Tag als konfigurierte Cronjobs).\r\n\r\n---\r\n\r\n## 2. Belege aus der Datenbank (C_ID = 261052)\r\n\r\n### 2.1 Run-Status\r\nAlle 14 Runs hängen auf `Status='triggered'`, `Finished_At=NULL`, `Result_Count=0`.\r\nKein Run wurde je auf `finished` gesetzt.\r\n\r\n### 2.2 Ergebnis-Ingestion pro Run\r\n\r\n| Run gestartet | Engine(s) | results `finished` | `pending` | Citations |\r\n|--------------------|----------------------|--------------------|-----------|-----------|\r\n| 21.06. 17:3217:33 | chatgpt, google ×2 | 233 / 233 | 0 | ✅ geladen |\r\n| 22.06. 02:32 | chatgpt, google | 233 / 233 | 0 | ✅ geladen |\r\n| 22.06. 02:34 | chatgpt | **30** / 233 | **203** | ⚠️ teilweise |\r\n| 22.06. 02:36 → 24.06. | 8 weitere Runs | **0** / 233 | **233** | ❌ keine |\r\n\r\n→ Ab 22.06. mittags bleiben **alle Snapshots auf `pending`** stehen — die BrightData-\r\nDaten werden nie heruntergeladen.\r\n\r\n### 2.3 Cronjob-Konfiguration\r\n\r\n| Cron_ID | Platform | Frequency | Is_Active | Last_Run | Next_Run |\r\n|---------|-----------------|-----------|-----------|---------------------|------------|\r\n| 34 | chatgpt | daily | 1 | 2026-06-24 00:34:51 | 2026-06-25 |\r\n| 37 | google_ai_mode | daily | 1 | 2026-06-24 00:40:19 | 2026-06-25 |\r\n\r\nErwartet: **2 Runs/Tag**. Tatsächlich: 3 (21.06.), 4 (22.06.), 2 (23.06.), **5 (24.06.)**\r\n→ Duplikat-Runs.\r\n\r\n> Hinweis: `Last_Run` (00:34/00:40, via `_local_now()`) und Run-`Started_At`\r\n> (02:32/02:34, via MySQL `NOW()`) weichen um ~2 h ab → **mögliche Zeitzonen-\r\n> Inkonsistenz** zwischen App-Server und DB.\r\n\r\n---\r\n\r\n## 3. Auswirkung im Reporting\r\n\r\nDatei: `Pages/prompt_tracking.py` (Visibility-Chart).\r\n\r\n- **„Run\"-Ansicht** (`_visibility_per_run`): zeichnet jeden Run als Punkt. Leere\r\n Pending-Runs → 0 % Visibility → die Abstürze auf ~0 % am 23./24.06. Teil-/Duplikat-\r\n Runs erzeugen das Zickzack. **Kein Anzeigefehler** — die Daten *sind* leer.\r\n- **„Tag\"-Ansicht** (`_visibility_per_bucket`): aggregiert per `resample('D').sum()`.\r\n Tage ohne Brand-Citations tauchen nicht auf → Linie endet „sauber\" am 22.06. und\r\n **verschleiert** das Ingestion-Problem.\r\n\r\n---\r\n\r\n## 4. Root Causes (im Code)\r\n\r\n### 🔴 RC-1 — Fetch ist an den Trigger-Zeitpunkt gekoppelt (Hauptproblem)\r\n**Datei:** `cron_executor.py`, `_check_and_run_cronjobs()` (Zeile ~286290)\r\n\r\nPhase 2 `_cron_fetch(cid)` läuft **direkt nach** dem Trigger. BrightData-Snapshots sind\r\nzu diesem Zeitpunkt noch `running` → es wird nichts geladen. Ein erneuter Fetch passiert\r\nerst beim **nächsten fälligen** Cronlauf (bei `daily` = 24 h später). Der Poller kehrt\r\nbei nicht fälligen Jobs früh zurück (`if rows.empty: return`, Zeile ~238), d. h. es\r\ngibt **keinen entkoppelten Pending-Sweep**. Verpasst der eine 24-h-Versuch das\r\nZeitfenster (Snapshot bei BrightData abgelaufen / noch nicht fertig), bleiben die\r\nErgebnisse **für immer `pending`**.\r\n\r\n### 🔴 RC-2 — Kein Timeout/Abbruch für hängende Snapshots\r\n**Datei:** `Pages/setup_tracking.py`, `_cron_fetch()` (Zeile ~695701)\r\n\r\n```python\r\nelif status != \"ready\":\r\n still_pending += 1\r\n continue\r\n```\r\nJeder Status außer `ready`/`running`/`failed` (z. B. abgelaufen, „collecting\", 404)\r\nwird unbegrenzt als `still_pending` gewertet und **nie** auf `error` gesetzt →\r\nDauer-Limbo, keine Selbstheilung.\r\n\r\n### 🟠 RC-3 — Run-Finalisierung greift nicht zuverlässig\r\n**Datei:** `Pages/setup_tracking.py`, `_cron_fetch()` (Zeile ~635) & `_finalize_completed_runs()` (Zeile ~1663)\r\n\r\n- Sind **keine** Pending-Snapshots vorhanden, kehrt `_cron_fetch` bei Zeile ~635\r\n (`if pending_df.empty: return`) zurück — **bevor** `_finalize_completed_runs()`\r\n (Zeile ~782) erreicht wird.\r\n- Faktisch stehen sogar vollständig abgeholte Runs (21.06., 233/233 `finished`) noch\r\n auf `triggered` statt `finished` → die Finalisierung läuft nicht / matched nicht.\r\n\r\n### 🟠 RC-4 — Duplikat-Runs\r\n**Datei:** `cron_executor.py`, `_acquire_lock()` / `_check_and_run_cronjobs()` (Zeile ~276284)\r\n\r\nPro Tag entstehen mehr Runs als konfigurierte Cronjobs. Der PID-Lock wird bereits nach\r\nPhase 1 wieder freigegeben (`Last_Running_PID = NULL`, Zeile ~279), bevor Phase 2\r\nabgeschlossen ist. Mehrere Poll-Zyklen bzw. gunicorn-Worker können denselben Job\r\nmehrfach triggern, solange `Next_Run` noch nicht fortgeschrieben ist.\r\n\r\n### 🟡 RC-5 — Mögliche Zeitzonen-Inkonsistenz\r\n`_local_now()` (App) vs. MySQL `NOW()`/`CURDATE()` (DB) — siehe 2.3. Kann\r\nFälligkeitsprüfungen und Duplikat-Logik beeinflussen.\r\n\r\n---\r\n\r\n## 5. Reproduktion\r\n\r\n1. Cronjob mit `Frequency='daily'` für einen Client mit vielen Prompts anlegen.\r\n2. Cronlauf abwarten → Run wird mit `Status='triggered'` angelegt, Snapshots `pending`.\r\n3. BrightData braucht länger als das Fetch-Fenster direkt nach dem Trigger.\r\n4. Beobachtung: Run bleibt dauerhaft `triggered`, `Result_Count=0`, results `pending`.\r\n\r\nDiagnose-Query:\r\n```sql\r\nSELECT run.Started_At, run.Status,\r\n SUM(r.Status='pending') AS pending,\r\n SUM(r.Status='finished') AS finished\r\nFROM a5_tracking_run run\r\nJOIN a5_tracking_result r ON r.Run_ID = run.Run_ID\r\nWHERE run.C_ID = 261052\r\nGROUP BY run.Run_ID, run.Started_At, run.Status\r\nORDER BY run.Started_At;\r\n```\r\n\r\n---\r\n\r\n## 6. Vorgeschlagene Lösung\r\n\r\n### Fix 1 — Entkoppelter Fetch-Sweep (behebt RC-1, RC-3)\r\nDen Pending-Fetch **von der Cron-Fälligkeit entkoppeln**. Eigener stündlicher\r\nAPScheduler-Job, der für **alle** Clients mit offenen Pending-Snapshots `_cron_fetch`\r\nausführt — unabhängig davon, ob ein Cronjob fällig ist.\r\n`_finalize_completed_runs(cid)` **immer** ausführen (auch wenn `pending_df.empty`),\r\nnicht früh returnen.\r\n\r\n### Fix 2 — Snapshot-Timeout (behebt RC-2)\r\nPending-Results mit `Prompt_Sent_At` älter als X Stunden (z. B. 612 h) bzw.\r\nBrightData-Status „expired\"/404 auf `Status='error'` setzen. Danach `_finalize_completed_runs`\r\n→ Run wird `partial`/`error` statt ewig `triggered`.\r\n\r\n### Fix 3 — Run-Finalisierung robuster (behebt RC-3)\r\n`_finalize_completed_runs` so erweitern, dass `triggered`-Runs ohne `pending`-Results\r\nkorrekt nach `finished`/`partial`/`error` überführt werden (analog zur Logik im\r\nmanuellen Pfad `Pages/api_prompt_tracking.py` Zeile ~256268). Bei jedem Sweep ausführen.\r\n\r\n### Fix 4 — Duplikat-Schutz (behebt RC-4)\r\n`Next_Run` **vor** dem Trigger atomar fortschreiben (Claim = `Next_Run` setzen + Lock),\r\noder Lock erst nach Phase 2 freigeben. Idempotenz-Guard: pro `(C_ID, Platform, Tag)`\r\nnur **einen** Run zulassen (Unique-Constraint oder Pre-Check).\r\n\r\n### Fix 5 — Zeitzonen vereinheitlichen (behebt RC-5)\r\nEinheitlich UTC **oder** durchgängig App-`_local_now()` verwenden; `Started_At` und\r\n`Last_Run` aus derselben Quelle setzen.\r\n\r\n---\r\n\r\n## 7. Akzeptanzkriterien\r\n\r\n- [ ] Nach einem Cronlauf werden Ergebnisse **innerhalb von max. 1 h** nach BrightData-\r\n Fertigstellung abgeholt — unabhängig von der Cron-Frequenz.\r\n- [ ] Kein Run bleibt länger als das Snapshot-Timeout auf `triggered`; danach\r\n `finished`/`partial`/`error` mit korrektem `Result_Count` und `Finished_At`.\r\n- [ ] Hängende/abgelaufene Snapshots werden auf `error` gesetzt (keine ewigen `pending`).\r\n- [ ] Pro `(C_ID, Platform, Tag)` entsteht **genau ein** Cron-Run.\r\n- [ ] Visibility-Chart („Run\") zeigt keine künstlichen 0 %-Einbrüche durch leere Runs.\r\n- [ ] Regressions-/Integrationstest, der den asynchronen BrightData-Zyklus\r\n (trigger → pending → ready → fetch → finished) simuliert.\r\n\r\n---\r\n\r\n## 8. Betroffene Dateien\r\n\r\n| Datei | Funktion(en) | Bezug |\r\n|---|---|---|\r\n| `cron_executor.py` | `_check_and_run_cronjobs`, `_acquire_lock`, `start_scheduler` | RC-1, RC-4, RC-5 |\r\n| `Pages/setup_tracking.py` | `_cron_fetch`, `_finalize_completed_runs`, `execute_trigger` | RC-1, RC-2, RC-3 |\r\n| `Pages/api_prompt_tracking.py` | `_run_api_tracking` (Referenz-Statuslogik) | RC-3 |\r\n| `Pages/prompt_tracking.py` | `_visibility_per_run`, `_visibility_per_bucket` | Auswirkung |\r\n\r\n---\r\n\r\n## 9. Sofort-Maßnahme (Daten-Nachzug, optional, kein Code-Fix)\r\n\r\nFür bereits hängende Runs von C_ID=261052 einmalig `_cron_fetch(261052)` ausführen\r\n(holt noch verfügbare Snapshots), abgelaufene Pending auf `error`, Duplikat-Runs\r\nbereinigen. **Nur sinnvoll, solange die BrightData-Snapshots noch nicht abgelaufen sind.**\r\n","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":6,"created_at":"2026-06-24T08:06:10+02:00","updated_at":"2026-06-30T15:58:59+02:00","closed_at":"2026-06-30T15:58:59+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":89,"created":"2026-06-24T14:49:21+02:00","time":536,"user_id":10,"user_name":"Oracle","issue_id":2204,"issue":{"id":2204,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/141","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/141","number":141,"user":{"id":45,"login":"max.bublitz","login_name":"","source_id":0,"full_name":"","email":"max.bublitz@vectorsearch.media","avatar_url":"https://bitfreedom.net/code/avatars/c9d573f6e5fa423bca0d70f9b1c7771b","html_url":"https://bitfreedom.net/code/max.bublitz","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-06-08T09:11:57+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"max.bublitz"},"original_author":"","original_author_id":0,"title":"CronJob Issue","body":"Hallo Otis,\r\n\r\nich habe bei Aida c_id=261052 ein Cronjob lauf. Es schein so, dass die Daten leider nicht sauber reinlaufen. Claude sagt folgendes: # 🐞 Cron-Tracking: Ergebnisse kommen nicht zuverlässig rein (Runs hängen auf `triggered`)\r\n\r\n**Komponente:** Prompt Tracking / Cron-Executor\r\n**Priorität:** Hoch (Reporting-Daten für Kunden unvollständig)\r\n**Betroffen:** Alle Cron-getriggerten Tracking-Runs (`Run_Type='cron'`, `Tracking_Source='basic'`)\r\n**Reproduziert an:** Kunde `C_ID=261052` (AIDA), Zeitraum 21.24.06.2026\r\n\r\n---\r\n\r\n## 1. Zusammenfassung\r\n\r\nCron-Tracking-Jobs werden bei BrightData **angestoßen**, aber die Ergebnisse werden\r\n**nicht zuverlässig abgeholt und gespeichert**. Die Runs bleiben dauerhaft im Status\r\n`triggered` mit `Result_Count = 0` und `Finished_At = NULL`; die zugehörigen\r\n`a5_tracking_result`-Zeilen bleiben auf `pending` stehen. Im Reporting (Prompt\r\nTracking → Visibility) erscheinen dadurch leere Runs (0 % Visibility), während die\r\n„Tag\"-Aggregation das Problem versteckt.\r\n\r\nZusätzlich entstehen **Duplikat-Runs** (mehr Runs pro Tag als konfigurierte Cronjobs).\r\n\r\n---\r\n\r\n## 2. Belege aus der Datenbank (C_ID = 261052)\r\n\r\n### 2.1 Run-Status\r\nAlle 14 Runs hängen auf `Status='triggered'`, `Finished_At=NULL`, `Result_Count=0`.\r\nKein Run wurde je auf `finished` gesetzt.\r\n\r\n### 2.2 Ergebnis-Ingestion pro Run\r\n\r\n| Run gestartet | Engine(s) | results `finished` | `pending` | Citations |\r\n|--------------------|----------------------|--------------------|-----------|-----------|\r\n| 21.06. 17:3217:33 | chatgpt, google ×2 | 233 / 233 | 0 | ✅ geladen |\r\n| 22.06. 02:32 | chatgpt, google | 233 / 233 | 0 | ✅ geladen |\r\n| 22.06. 02:34 | chatgpt | **30** / 233 | **203** | ⚠️ teilweise |\r\n| 22.06. 02:36 → 24.06. | 8 weitere Runs | **0** / 233 | **233** | ❌ keine |\r\n\r\n→ Ab 22.06. mittags bleiben **alle Snapshots auf `pending`** stehen — die BrightData-\r\nDaten werden nie heruntergeladen.\r\n\r\n### 2.3 Cronjob-Konfiguration\r\n\r\n| Cron_ID | Platform | Frequency | Is_Active | Last_Run | Next_Run |\r\n|---------|-----------------|-----------|-----------|---------------------|------------|\r\n| 34 | chatgpt | daily | 1 | 2026-06-24 00:34:51 | 2026-06-25 |\r\n| 37 | google_ai_mode | daily | 1 | 2026-06-24 00:40:19 | 2026-06-25 |\r\n\r\nErwartet: **2 Runs/Tag**. Tatsächlich: 3 (21.06.), 4 (22.06.), 2 (23.06.), **5 (24.06.)**\r\n→ Duplikat-Runs.\r\n\r\n> Hinweis: `Last_Run` (00:34/00:40, via `_local_now()`) und Run-`Started_At`\r\n> (02:32/02:34, via MySQL `NOW()`) weichen um ~2 h ab → **mögliche Zeitzonen-\r\n> Inkonsistenz** zwischen App-Server und DB.\r\n\r\n---\r\n\r\n## 3. Auswirkung im Reporting\r\n\r\nDatei: `Pages/prompt_tracking.py` (Visibility-Chart).\r\n\r\n- **„Run\"-Ansicht** (`_visibility_per_run`): zeichnet jeden Run als Punkt. Leere\r\n Pending-Runs → 0 % Visibility → die Abstürze auf ~0 % am 23./24.06. Teil-/Duplikat-\r\n Runs erzeugen das Zickzack. **Kein Anzeigefehler** — die Daten *sind* leer.\r\n- **„Tag\"-Ansicht** (`_visibility_per_bucket`): aggregiert per `resample('D').sum()`.\r\n Tage ohne Brand-Citations tauchen nicht auf → Linie endet „sauber\" am 22.06. und\r\n **verschleiert** das Ingestion-Problem.\r\n\r\n---\r\n\r\n## 4. Root Causes (im Code)\r\n\r\n### 🔴 RC-1 — Fetch ist an den Trigger-Zeitpunkt gekoppelt (Hauptproblem)\r\n**Datei:** `cron_executor.py`, `_check_and_run_cronjobs()` (Zeile ~286290)\r\n\r\nPhase 2 `_cron_fetch(cid)` läuft **direkt nach** dem Trigger. BrightData-Snapshots sind\r\nzu diesem Zeitpunkt noch `running` → es wird nichts geladen. Ein erneuter Fetch passiert\r\nerst beim **nächsten fälligen** Cronlauf (bei `daily` = 24 h später). Der Poller kehrt\r\nbei nicht fälligen Jobs früh zurück (`if rows.empty: return`, Zeile ~238), d. h. es\r\ngibt **keinen entkoppelten Pending-Sweep**. Verpasst der eine 24-h-Versuch das\r\nZeitfenster (Snapshot bei BrightData abgelaufen / noch nicht fertig), bleiben die\r\nErgebnisse **für immer `pending`**.\r\n\r\n### 🔴 RC-2 — Kein Timeout/Abbruch für hängende Snapshots\r\n**Datei:** `Pages/setup_tracking.py`, `_cron_fetch()` (Zeile ~695701)\r\n\r\n```python\r\nelif status != \"ready\":\r\n still_pending += 1\r\n continue\r\n```\r\nJeder Status außer `ready`/`running`/`failed` (z. B. abgelaufen, „collecting\", 404)\r\nwird unbegrenzt als `still_pending` gewertet und **nie** auf `error` gesetzt →\r\nDauer-Limbo, keine Selbstheilung.\r\n\r\n### 🟠 RC-3 — Run-Finalisierung greift nicht zuverlässig\r\n**Datei:** `Pages/setup_tracking.py`, `_cron_fetch()` (Zeile ~635) & `_finalize_completed_runs()` (Zeile ~1663)\r\n\r\n- Sind **keine** Pending-Snapshots vorhanden, kehrt `_cron_fetch` bei Zeile ~635\r\n (`if pending_df.empty: return`) zurück — **bevor** `_finalize_completed_runs()`\r\n (Zeile ~782) erreicht wird.\r\n- Faktisch stehen sogar vollständig abgeholte Runs (21.06., 233/233 `finished`) noch\r\n auf `triggered` statt `finished` → die Finalisierung läuft nicht / matched nicht.\r\n\r\n### 🟠 RC-4 — Duplikat-Runs\r\n**Datei:** `cron_executor.py`, `_acquire_lock()` / `_check_and_run_cronjobs()` (Zeile ~276284)\r\n\r\nPro Tag entstehen mehr Runs als konfigurierte Cronjobs. Der PID-Lock wird bereits nach\r\nPhase 1 wieder freigegeben (`Last_Running_PID = NULL`, Zeile ~279), bevor Phase 2\r\nabgeschlossen ist. Mehrere Poll-Zyklen bzw. gunicorn-Worker können denselben Job\r\nmehrfach triggern, solange `Next_Run` noch nicht fortgeschrieben ist.\r\n\r\n### 🟡 RC-5 — Mögliche Zeitzonen-Inkonsistenz\r\n`_local_now()` (App) vs. MySQL `NOW()`/`CURDATE()` (DB) — siehe 2.3. Kann\r\nFälligkeitsprüfungen und Duplikat-Logik beeinflussen.\r\n\r\n---\r\n\r\n## 5. Reproduktion\r\n\r\n1. Cronjob mit `Frequency='daily'` für einen Client mit vielen Prompts anlegen.\r\n2. Cronlauf abwarten → Run wird mit `Status='triggered'` angelegt, Snapshots `pending`.\r\n3. BrightData braucht länger als das Fetch-Fenster direkt nach dem Trigger.\r\n4. Beobachtung: Run bleibt dauerhaft `triggered`, `Result_Count=0`, results `pending`.\r\n\r\nDiagnose-Query:\r\n```sql\r\nSELECT run.Started_At, run.Status,\r\n SUM(r.Status='pending') AS pending,\r\n SUM(r.Status='finished') AS finished\r\nFROM a5_tracking_run run\r\nJOIN a5_tracking_result r ON r.Run_ID = run.Run_ID\r\nWHERE run.C_ID = 261052\r\nGROUP BY run.Run_ID, run.Started_At, run.Status\r\nORDER BY run.Started_At;\r\n```\r\n\r\n---\r\n\r\n## 6. Vorgeschlagene Lösung\r\n\r\n### Fix 1 — Entkoppelter Fetch-Sweep (behebt RC-1, RC-3)\r\nDen Pending-Fetch **von der Cron-Fälligkeit entkoppeln**. Eigener stündlicher\r\nAPScheduler-Job, der für **alle** Clients mit offenen Pending-Snapshots `_cron_fetch`\r\nausführt — unabhängig davon, ob ein Cronjob fällig ist.\r\n`_finalize_completed_runs(cid)` **immer** ausführen (auch wenn `pending_df.empty`),\r\nnicht früh returnen.\r\n\r\n### Fix 2 — Snapshot-Timeout (behebt RC-2)\r\nPending-Results mit `Prompt_Sent_At` älter als X Stunden (z. B. 612 h) bzw.\r\nBrightData-Status „expired\"/404 auf `Status='error'` setzen. Danach `_finalize_completed_runs`\r\n→ Run wird `partial`/`error` statt ewig `triggered`.\r\n\r\n### Fix 3 — Run-Finalisierung robuster (behebt RC-3)\r\n`_finalize_completed_runs` so erweitern, dass `triggered`-Runs ohne `pending`-Results\r\nkorrekt nach `finished`/`partial`/`error` überführt werden (analog zur Logik im\r\nmanuellen Pfad `Pages/api_prompt_tracking.py` Zeile ~256268). Bei jedem Sweep ausführen.\r\n\r\n### Fix 4 — Duplikat-Schutz (behebt RC-4)\r\n`Next_Run` **vor** dem Trigger atomar fortschreiben (Claim = `Next_Run` setzen + Lock),\r\noder Lock erst nach Phase 2 freigeben. Idempotenz-Guard: pro `(C_ID, Platform, Tag)`\r\nnur **einen** Run zulassen (Unique-Constraint oder Pre-Check).\r\n\r\n### Fix 5 — Zeitzonen vereinheitlichen (behebt RC-5)\r\nEinheitlich UTC **oder** durchgängig App-`_local_now()` verwenden; `Started_At` und\r\n`Last_Run` aus derselben Quelle setzen.\r\n\r\n---\r\n\r\n## 7. Akzeptanzkriterien\r\n\r\n- [ ] Nach einem Cronlauf werden Ergebnisse **innerhalb von max. 1 h** nach BrightData-\r\n Fertigstellung abgeholt — unabhängig von der Cron-Frequenz.\r\n- [ ] Kein Run bleibt länger als das Snapshot-Timeout auf `triggered`; danach\r\n `finished`/`partial`/`error` mit korrektem `Result_Count` und `Finished_At`.\r\n- [ ] Hängende/abgelaufene Snapshots werden auf `error` gesetzt (keine ewigen `pending`).\r\n- [ ] Pro `(C_ID, Platform, Tag)` entsteht **genau ein** Cron-Run.\r\n- [ ] Visibility-Chart („Run\") zeigt keine künstlichen 0 %-Einbrüche durch leere Runs.\r\n- [ ] Regressions-/Integrationstest, der den asynchronen BrightData-Zyklus\r\n (trigger → pending → ready → fetch → finished) simuliert.\r\n\r\n---\r\n\r\n## 8. Betroffene Dateien\r\n\r\n| Datei | Funktion(en) | Bezug |\r\n|---|---|---|\r\n| `cron_executor.py` | `_check_and_run_cronjobs`, `_acquire_lock`, `start_scheduler` | RC-1, RC-4, RC-5 |\r\n| `Pages/setup_tracking.py` | `_cron_fetch`, `_finalize_completed_runs`, `execute_trigger` | RC-1, RC-2, RC-3 |\r\n| `Pages/api_prompt_tracking.py` | `_run_api_tracking` (Referenz-Statuslogik) | RC-3 |\r\n| `Pages/prompt_tracking.py` | `_visibility_per_run`, `_visibility_per_bucket` | Auswirkung |\r\n\r\n---\r\n\r\n## 9. Sofort-Maßnahme (Daten-Nachzug, optional, kein Code-Fix)\r\n\r\nFür bereits hängende Runs von C_ID=261052 einmalig `_cron_fetch(261052)` ausführen\r\n(holt noch verfügbare Snapshots), abgelaufene Pending auf `error`, Duplikat-Runs\r\nbereinigen. **Nur sinnvoll, solange die BrightData-Snapshots noch nicht abgelaufen sind.**\r\n","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":6,"created_at":"2026-06-24T08:06:10+02:00","updated_at":"2026-06-30T15:58:59+02:00","closed_at":"2026-06-30T15:58:59+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":92,"created":"2026-06-25T14:44:50+02:00","time":2359,"user_id":10,"user_name":"Oracle","issue_id":2222,"issue":{"id":2222,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/146","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/146","number":146,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"PPTX Issue","body":"debug:\r\n`Jun 24 08:02:42 ubuntu gunicorn[2040131]: 2026-06-24 08:02:42 ERROR [Pages.final_presentation] Competitor PPTX failed: 'float' object is not subscriptable`","ref":"refs/heads/2026-06-11_Max_Galaxy_V7","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-06-24T16:43:36+02:00","updated_at":"2026-06-25T14:53:46+02:00","closed_at":"2026-06-25T14:53:46+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":95,"created":"2026-06-29T13:43:07+02:00","time":2959,"user_id":10,"user_name":"Oracle","issue_id":2276,"issue":{"id":2276,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Sales/issues/1","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Sales/issues/1","number":1,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Analyse repo","body":"@Oracle bitte einmal genau das repo ansehen und überlegen, wie man es in Galaxy portieren kann","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:48:01+02:00","updated_at":"2026-06-29T13:43:07+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":338,"name":"Sales","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Sales"},"pin_order":0}},{"id":98,"created":"2026-06-29T14:02:54+02:00","time":314,"user_id":10,"user_name":"Oracle","issue_id":2270,"issue":{"id":2270,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/151","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/151","number":151,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Check and improve code consistency/quality","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:35:27+02:00","updated_at":"2026-07-13T16:14:25+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":101,"created":"2026-06-29T15:55:16+02:00","time":3600,"user_id":10,"user_name":"Oracle","issue_id":2270,"issue":{"id":2270,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/151","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/151","number":151,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Check and improve code consistency/quality","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:35:27+02:00","updated_at":"2026-07-13T16:14:25+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":104,"created":"2026-06-30T12:10:13+02:00","time":2420,"user_id":10,"user_name":"Oracle","issue_id":2270,"issue":{"id":2270,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/151","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/151","number":151,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Check and improve code consistency/quality","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:35:27+02:00","updated_at":"2026-07-13T16:14:25+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":107,"created":"2026-06-30T12:27:29+02:00","time":554,"user_id":10,"user_name":"Oracle","issue_id":2330,"issue":{"id":2330,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/162","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/162","number":162,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Enabling Cronjobs via Client Basic with no set Frequency should fail gracefully","body":"","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":1,"created_at":"2026-06-30T12:06:01+02:00","updated_at":"2026-06-30T12:50:00+02:00","closed_at":"2026-06-30T12:49:59+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":110,"created":"2026-06-30T12:52:59+02:00","time":900,"user_id":10,"user_name":"Oracle","issue_id":2333,"issue":{"id":2333,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/163","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/163","number":163,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Continue code deduplication (PR 2) of Issue #151","body":"Net negative of -320 lines","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"assignees":[{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"}],"state":"closed","is_locked":false,"comments":4,"created_at":"2026-06-30T12:09:57+02:00","updated_at":"2026-06-30T15:38:12+02:00","closed_at":"2026-06-30T15:38:10+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-06-30T15:38:10+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/163"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":113,"created":"2026-07-02T15:26:43+02:00","time":900,"user_id":10,"user_name":"Oracle","issue_id":2327,"issue":{"id":2327,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/161","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/161","number":161,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Add error handling to conent_outline generation","body":"The NOMYO api responds with HTTP 422 or 502 if input in the content_outline generation is missing or malformed.\r\n\r\nHandle these errors and surface them to the user in Content/Page Generation menu.","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":5,"created_at":"2026-06-30T07:42:33+02:00","updated_at":"2026-07-06T17:10:31+02:00","closed_at":"2026-07-06T17:10:31+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":116,"created":"2026-07-02T15:44:05+02:00","time":1036,"user_id":10,"user_name":"Oracle","issue_id":2327,"issue":{"id":2327,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/161","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/161","number":161,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Add error handling to conent_outline generation","body":"The NOMYO api responds with HTTP 422 or 502 if input in the content_outline generation is missing or malformed.\r\n\r\nHandle these errors and surface them to the user in Content/Page Generation menu.","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":5,"created_at":"2026-06-30T07:42:33+02:00","updated_at":"2026-07-06T17:10:31+02:00","closed_at":"2026-07-06T17:10:31+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":119,"created":"2026-07-02T16:11:43+02:00","time":941,"user_id":10,"user_name":"Oracle","issue_id":2270,"issue":{"id":2270,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/151","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/151","number":151,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Check and improve code consistency/quality","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:35:27+02:00","updated_at":"2026-07-13T16:14:25+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":122,"created":"2026-07-02T17:00:34+02:00","time":1991,"user_id":10,"user_name":"Oracle","issue_id":2270,"issue":{"id":2270,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/151","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/151","number":151,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Check and improve code consistency/quality","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:35:27+02:00","updated_at":"2026-07-13T16:14:25+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":125,"created":"2026-07-02T18:14:10+02:00","time":3600,"user_id":10,"user_name":"Oracle","issue_id":2402,"issue":{"id":2402,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/178","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/178","number":178,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Revise all migrations and switch to alembic","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-07-02T18:13:56+02:00","updated_at":"2026-07-06T17:11:08+02:00","closed_at":"2026-07-06T17:11:07+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":128,"created":"2026-07-03T12:51:21+02:00","time":3060,"user_id":10,"user_name":"Oracle","issue_id":2402,"issue":{"id":2402,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/178","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/178","number":178,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Revise all migrations and switch to alembic","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-07-02T18:13:56+02:00","updated_at":"2026-07-06T17:11:08+02:00","closed_at":"2026-07-06T17:11:07+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":131,"created":"2026-07-03T13:45:32+02:00","time":3247,"user_id":10,"user_name":"Oracle","issue_id":2402,"issue":{"id":2402,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/178","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/178","number":178,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Revise all migrations and switch to alembic","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-07-02T18:13:56+02:00","updated_at":"2026-07-06T17:11:08+02:00","closed_at":"2026-07-06T17:11:07+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":134,"created":"2026-07-03T14:19:30+02:00","time":1980,"user_id":10,"user_name":"Oracle","issue_id":2402,"issue":{"id":2402,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/178","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/178","number":178,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Revise all migrations and switch to alembic","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-07-02T18:13:56+02:00","updated_at":"2026-07-06T17:11:08+02:00","closed_at":"2026-07-06T17:11:07+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":140,"created":"2026-07-03T14:55:38+02:00","time":900,"user_id":10,"user_name":"Oracle","issue_id":2402,"issue":{"id":2402,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/178","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/178","number":178,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Revise all migrations and switch to alembic","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":2,"created_at":"2026-07-02T18:13:56+02:00","updated_at":"2026-07-06T17:11:08+02:00","closed_at":"2026-07-06T17:11:07+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":143,"created":"2026-07-06T14:18:37+02:00","time":1561,"user_id":10,"user_name":"Oracle","issue_id":2420,"issue":{"id":2420,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/181","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/181","number":181,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Fully revise all migrations and switch to alembic for easier upgrading in the future","body":"# Migration revision\r\nProduces exact same schema as (to my knowledge) latest prod MySQL dump.\r\nUpgrade path is very likely to work and has been verified from every existing iteration of the database, downgrade is either **missing** or an **autogenerated best effort**.\r\nFor this to work in prod or on an already existing database alembic has to be **stamped to the correct migration revision** the database is currently on, otherwise it will try to run **every migration from the start** which wont work. ","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":null,"assignees":null,"state":"closed","is_locked":false,"comments":10,"created_at":"2026-07-03T15:02:37+02:00","updated_at":"2026-07-06T17:11:05+02:00","closed_at":"2026-07-06T16:45:11+02:00","due_date":null,"pull_request":{"merged":true,"merged_at":"2026-07-06T16:45:12+02:00","draft":false,"html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/pulls/181"},"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":146,"created":"2026-07-06T15:35:42+02:00","time":1611,"user_id":10,"user_name":"Oracle","issue_id":2327,"issue":{"id":2327,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/161","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/161","number":161,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Add error handling to conent_outline generation","body":"The NOMYO api responds with HTTP 422 or 502 if input in the content_outline generation is missing or malformed.\r\n\r\nHandle these errors and surface them to the user in Content/Page Generation menu.","ref":"","assets":[],"labels":[],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":5,"created_at":"2026-06-30T07:42:33+02:00","updated_at":"2026-07-06T17:10:31+02:00","closed_at":"2026-07-06T17:10:31+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":149,"created":"2026-07-13T14:49:00+02:00","time":4768,"user_id":10,"user_name":"Oracle","issue_id":2336,"issue":{"id":2336,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/164","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/164","number":164,"user":{"id":7,"login":"apunkt","login_name":"","source_id":0,"full_name":"","email":"apunkt@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/f0657e65bb909c19afe9afabf83fda3fd7a52ed198d691239b286f8d486c0b66","html_url":"https://bitfreedom.net/code/apunkt","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T16:00:10+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"","pronouns":"","website":"","description":"","visibility":"public","followers_count":2,"following_count":0,"starred_repos_count":1,"username":"apunkt"},"original_author":"","original_author_id":0,"title":"Add a frontend to backend pipeline","body":"If clients are setup and configured a NOMYO backend pipeline is being triggered for final data processing.\r\nNOMYO has a pipeline manager script that reads from db.vsm.pipeline_queue\r\n\r\nWe want to build an admin exclusive UI that can activate pipeline for a given client with config as per pipeline_queue table definition","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"closed","is_locked":false,"comments":1,"created_at":"2026-06-30T12:25:47+02:00","updated_at":"2026-07-13T15:47:22+02:00","closed_at":"2026-07-13T15:47:21+02:00","due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":152,"created":"2026-07-13T15:44:06+02:00","time":2181,"user_id":10,"user_name":"Oracle","issue_id":2270,"issue":{"id":2270,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/151","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/151","number":151,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Check and improve code consistency/quality","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:35:27+02:00","updated_at":"2026-07-13T16:14:25+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}},{"id":155,"created":"2026-07-13T16:14:25+02:00","time":1731,"user_id":10,"user_name":"Oracle","issue_id":2270,"issue":{"id":2270,"url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/issues/151","html_url":"https://bitfreedom.net/code/VectorSearchMedia/Galaxy/issues/151","number":151,"user":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"otis.schmedt@gmx.de","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"de-DE","is_admin":false,"last_login":"2026-06-14T15:32:05+02:00","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":true,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"original_author":"","original_author_id":0,"title":"Check and improve code consistency/quality","body":"","ref":"","assets":[],"labels":[{"id":1143,"name":"enhancement","exclusive":false,"is_archived":false,"color":"a2eeef","description":"New feature or request","url":"https://bitfreedom.net/code/api/v1/repos/VectorSearchMedia/Galaxy/labels/1143"}],"milestone":null,"assignee":{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"},"assignees":[{"id":10,"login":"Oracle","login_name":"","source_id":0,"full_name":"","email":"oracle@noreply.localhost","avatar_url":"https://bitfreedom.net/code/avatars/a8eedbdac8fbdb87d1c19169629766c2b3c64614a177c5c80a0f30392b0a23b1","html_url":"https://bitfreedom.net/code/Oracle","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-31T23:44:46+02:00","restricted":false,"active":false,"prohibit_login":false,"location":"Germany","pronouns":"","website":"","description":"","visibility":"public","followers_count":1,"following_count":1,"starred_repos_count":1,"username":"Oracle"}],"state":"open","is_locked":false,"comments":0,"created_at":"2026-06-26T10:35:27+02:00","updated_at":"2026-07-13T16:14:25+02:00","closed_at":null,"due_date":null,"pull_request":null,"repository":{"id":321,"name":"Galaxy","owner":"VectorSearchMedia","full_name":"VectorSearchMedia/Galaxy"},"pin_order":0}}]