r28286 2026-02-20 cevans CHG: token usage and limiting for OpenAI GPT plugin [q13610]

M /trunk
M /trunk/css
M /trunk/login.php
M /trunk/plugins/openai_gpt/config/config.php
A /trunk/plugins/openai_gpt/hooks/team_home.php
M /trunk/plugins/openai_gpt/include/openai_gpt_functions.php
M /trunk/plugins/openai_gpt/job_handlers/process_gpt_existing.php
M /trunk/plugins/openai_gpt/languages/en.php
M /trunk/plugins/openai_gpt/pages/process_existing.php
M /trunk/plugins/openai_gpt/pages/setup.php
r28284 2026-02-20 cevans CHG: bring up to date with trunk [q13610]

M /branches/20260204_cevans_q13610
M /branches/20260204_cevans_q13610/batch/cron_jobs/015_action_notifications.php
M /branches/20260204_cevans_q13610/css
A /branches/20260204_cevans_q13610/css/fonts/Atkinson Hyperlegible Next.css
M /branches/20260204_cevans_q13610/css/global.css
M /branches/20260204_cevans_q13610/css/light.css
M /branches/20260204_cevans_q13610/dbstruct/data_report.txt
M /branches/20260204_cevans_q13610/include/authenticate.php
M /branches/20260204_cevans_q13610/include/collections_functions.php
M /branches/20260204_cevans_q13610/include/config.default.php
M /branches/20260204_cevans_q13610/include/config_functions.php
M /branches/20260204_cevans_q13610/include/definitions.php
M /branches/20260204_cevans_q13610/include/do_search_keywords.php
M /branches/20260204_cevans_q13610/include/footer.php
M /branches/20260204_cevans_q13610/include/general_functions.php
M /branches/20260204_cevans_q13610/include/header.php
M /branches/20260204_cevans_q13610/include/image_processing.php
M /branches/20260204_cevans_q13610/include/job_functions.php
M /branches/20260204_cevans_q13610/include/login_background.php
M /branches/20260204_cevans_q13610/include/render_functions.php
M /branches/20260204_cevans_q13610/include/resource_functions.php
M /branches/20260204_cevans_q13610/include/user_functions.php
M /branches/20260204_cevans_q13610/include/version.php
M /branches/20260204_cevans_q13610/js/global.js
M /branches/20260204_cevans_q13610/languages/ar.php
M /branches/20260204_cevans_q13610/languages/be.php
M /branches/20260204_cevans_q13610/languages/bn.php
M /branches/20260204_cevans_q13610/languages/ca.php
M /branches/20260204_cevans_q13610/languages/cs.php
M /branches/20260204_cevans_q13610/languages/cy.php
M /branches/20260204_cevans_q13610/languages/da.php
M /branches/20260204_cevans_q13610/languages/de.php
M /branches/20260204_cevans_q13610/languages/el.php
M /branches/20260204_cevans_q13610/languages/en.php
M /branches/20260204_cevans_q13610/languages/es-AR.php
M /branches/20260204_cevans_q13610/languages/es.php
M /branches/20260204_cevans_q13610/languages/fa.php
M /branches/20260204_cevans_q13610/languages/fi.php
M /branches/20260204_cevans_q13610/languages/fr.php
M /branches/20260204_cevans_q13610/languages/hi.php
M /branches/20260204_cevans_q13610/languages/hr.php
M /branches/20260204_cevans_q13610/languages/hu.php
M /branches/20260204_cevans_q13610/languages/id.php
M /branches/20260204_cevans_q13610/languages/it.php
M /branches/20260204_cevans_q13610/languages/jp.php
M /branches/20260204_cevans_q13610/languages/ko.php
M /branches/20260204_cevans_q13610/languages/ms.php
M /branches/20260204_cevans_q13610/languages/nl.php
M /branches/20260204_cevans_q13610/languages/no.php
M /branches/20260204_cevans_q13610/languages/pa.php
M /branches/20260204_cevans_q13610/languages/pl.php
M /branches/20260204_cevans_q13610/languages/pt-BR.php
M /branches/20260204_cevans_q13610/languages/pt.php
M /branches/20260204_cevans_q13610/languages/ro.php
M /branches/20260204_cevans_q13610/languages/ru.php
M /branches/20260204_cevans_q13610/languages/sk.php
M /branches/20260204_cevans_q13610/languages/sv.php
M /branches/20260204_cevans_q13610/languages/sw.php
M /branches/20260204_cevans_q13610/languages/th.php
M /branches/20260204_cevans_q13610/languages/tl.php
M /branches/20260204_cevans_q13610/languages/tr.php
M /branches/20260204_cevans_q13610/languages/uk.php
M /branches/20260204_cevans_q13610/languages/ur.php
M /branches/20260204_cevans_q13610/languages/vi.php
M /branches/20260204_cevans_q13610/languages/zh-CN.php
A /branches/20260204_cevans_q13610/lib/fonts/Atkinson_Hyperlegible_Next
M /branches/20260204_cevans_q13610/login.php
M /branches/20260204_cevans_q13610/pages/admin/admin_system_config.php
M /branches/20260204_cevans_q13610/pages/ajax/userlist_save.php
M /branches/20260204_cevans_q13610/pages/ajax/userlist_select_update.php
M /branches/20260204_cevans_q13610/pages/ajax/username_list_update.php
M /branches/20260204_cevans_q13610/pages/download.php
M /branches/20260204_cevans_q13610/pages/edit_fields/4.php
M /branches/20260204_cevans_q13610/pages/manage_jobs.php
M /branches/20260204_cevans_q13610/pages/preview.php
M /branches/20260204_cevans_q13610/pages/user/user_preferences.php
M /branches/20260204_cevans_q13610/pages/user_password.php
M /branches/20260204_cevans_q13610/pages/user_request.php
M /branches/20260204_cevans_q13610/pages/view.php
M /branches/20260204_cevans_q13610/plugins/clip/hooks/all.php
D /branches/20260204_cevans_q13610/plugins/clip/hooks/manage_jobs.php
M /branches/20260204_cevans_q13610/plugins/consentmanager/pages/edit.php
M /branches/20260204_cevans_q13610/plugins/emu/hooks/edit.php
M /branches/20260204_cevans_q13610/plugins/faces/hooks/all.php
D /branches/20260204_cevans_q13610/plugins/faces/hooks/manage_jobs.php
M /branches/20260204_cevans_q13610/plugins/faces/include/faces_functions.php
M /branches/20260204_cevans_q13610/plugins/google_vision/hooks/all.php
D /branches/20260204_cevans_q13610/plugins/google_vision/hooks/manage_jobs.php
M /branches/20260204_cevans_q13610/plugins/google_vision/job_handlers/process_gv_existing.php
M /branches/20260204_cevans_q13610/plugins/google_vision/pages/offline_jobs/process_gv_existing.php
M /branches/20260204_cevans_q13610/plugins/licensemanager/pages/edit.php
M /branches/20260204_cevans_q13610/plugins/lightbox_preview/hooks/view.php
M /branches/20260204_cevans_q13610/plugins/openai_gpt/hooks/all.php
D /branches/20260204_cevans_q13610/plugins/openai_gpt/hooks/manage_jobs.php
M /branches/20260204_cevans_q13610/plugins/simplesaml/hooks/all.php
M /branches/20260204_cevans_q13610/plugins/simplesaml/include/simplesaml_functions.php
M /branches/20260204_cevans_q13610/plugins/simplesaml/pages/setup.php
M /branches/20260204_cevans_q13610/plugins/whisper/hooks/all.php
D /branches/20260204_cevans_q13610/plugins/whisper/hooks/manage_jobs.php
M /branches/20260204_cevans_q13610/plugins/wordpress_sso/hooks/all.php
M /branches/20260204_cevans_q13610/tests/test_list/000520_do_wildcard_search.php
M /branches/20260204_cevans_q13610/tests/test_list/001420_login_functions_security_logs.php
M /branches/20260204_cevans_q13610/tests/test_list/001570_parse_int_ranges.php
r28266 2026-02-18 cevans CHG: allow token limit and days to be set via remote config [q13610]

M /branches/20260204_cevans_q13610/plugins/openai_gpt/config/config.php
r28259 2026-02-17 cevans CHG: improve token usage info on plugin setup page [q13610]

M /branches/20260204_cevans_q13610/plugins/openai_gpt/languages/en.php
M /branches/20260204_cevans_q13610/plugins/openai_gpt/pages/setup.php
r28258 2026-02-17 cevans CHG: check token limit at start of process_existing script [q13610]

M /branches/20260204_cevans_q13610/plugins/openai_gpt/pages/process_existing.php
r28255 2026-02-17 cevans FIX: add missing hook for Admin menu token warning [q13610]

A /branches/20260204_cevans_q13610/plugins/openai_gpt/hooks/team_home.php
r28191 2026-02-04 cevans CHG: add token limit function to Open AI GPT plugin [q13610]

M /branches/20260204_cevans_q13610/plugins/openai_gpt/config/config.php
M /branches/20260204_cevans_q13610/plugins/openai_gpt/include/openai_gpt_functions.php
M /branches/20260204_cevans_q13610/plugins/openai_gpt/job_handlers/process_gpt_existing.php
M /branches/20260204_cevans_q13610/plugins/openai_gpt/languages/en.php
M /branches/20260204_cevans_q13610/plugins/openai_gpt/pages/setup.php
r28184 2026-02-04 cevans NEW: Creating branch [q13610]

A /branches/20260204_cevans_q13610