diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index 6f2a2330..e635d6d1 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -9,16 +9,18 @@ `load_ae_obj_li__event_location` on page load. Also fixed session query using stale `event_location_id_random` index (should be `event_location_id`). (2026-04-19) -- [ ] **[Files] Warn/error on `.ppt` upload** — if a presenter tries to upload a `.ppt` file (legacy - PowerPoint format), show a clear warning or block the upload with an error message instructing them - to use `.pptx` instead. Modern format required for processing. +- [x] **[Files] Warn/error on `.ppt`/`.doc` upload** — warning rows shown per-file in upload table; + non-trusted users are fully blocked (`file_list_status = 'blocked_legacy'`); trusted users see + warnings but can still upload. Covers `.ppt`, `.doc` (block) and other legacy exts (warn-only). + (2026-04-19) -- [ ] **[Files] Hide draft/flagged files from list** — files marked with an X flag (draft or - purpose-excluded) should not appear in the file listing. Filter them out before display. +- [x] **[Files] Hide draft/flagged files from list** — `hide_draft` prop in `launcher_file_cont.svelte` + now hides files with `file_purpose == 'outline'`, `'draft'`, or `'admin'` when the launcher's + hide-draft toggle is enabled. (2026-04-19) -- [ ] **[Electron/Launcher] Deploy updated Aether Native Electron app to Mac laptops** — double-check - the build and deployment process; verify the latest version is installed and functional on the - onsite Mac laptops before April 21. +- [ ] **[Electron/Launcher] Deploy + test Aether Native Electron app on Mac laptops** — build, + deploy, and verify on onsite Mac laptops. Additional testing of cache/launch flow still needed + before April 21. - [x] **[Pres Mgmt] POC column shown in "Sessions at this Location"** — wired `hide__session_poc={!pres_mgmt_loc.current.show__session_li_poc_field}` in @@ -183,20 +185,36 @@ Once the global rule is in place, remove the scoped workaround from the badge co ### [DevOps] Remaining deployment items -- [x] **Wire AE_APP_REPLICAS:** `docker-compose.yml` line 147 already has `scale: ${AE_APP_REPLICAS:-1}`. (verified 2026-03-11) -- [x] **Archive ae_env_node_app:** Archived as tar.gz under `~/OSIT_dev/backups/`; old history/docs moved to `~/OSIT_dev/for_reference_only/`. (2026-03-11) -- [x] **Build Optimization:** Current state finalized. Local Gitea instance stood up at `git.dgrzone.com` (Docker, home server) — future: migrate repos from Bitbucket, verify Backblaze/restic backups cover Gitea data. (2026-03-11) -- [x] **Remote deploy script:** `aether_container_env/deploy.sh` — SSH-triggered from workstation via `npm run deploy:remote:test/prod`. Handles git pull (ff-only) + docker build + restart. Tested and working on test env. (2026-03-25) -- [x] **`.env.default` cleanup:** Removed 16 dead variables, added missing `AE_NETWORK_NAME`/`CONTAINER_DOZZLE`/`AE_DOZZLE_PORT`, parameterized all container names (`CONTAINER_MARIADB`, `CONTAINER_PMA`, `CONTAINER_AE_OPS`) with `:-default` fallbacks in compose. ("Dozzle" = log viewer container.) (2026-03-26) -- [x] **Prod deploy:** Run `npm run deploy:remote:prod` (off-peak). Prerequisites: both repos pushed to Bitbucket ✓; verify `.env.prod` exists in `/srv/apps/prod_aether_app_sveltekit/` on Linode before running. (2026-03-30) -- [x] **Bitbucket → SSH migration:** Switched all three repos (`aether_app_sveltekit`, `aether_container_env`, `aether_api_fastapi`) to SSH remotes (`git@bitbucket.org`) on workstation. App passwords deprecated — SSH unaffected. (2026-03-27) -- [ ] **Branch strategy cleanup:** All environments (test, prod, bak) currently pull from same branches. `deploy.sh` defaults are `ae_app_3x_llm` / `development` — acceptable for now but should establish proper branch separation (e.g. `main`/`master` for prod). -- [ ] **Tier 2 deploy (Gitea webhook):** Push-triggered deploys via Gitea webhook → listener on Linode → `deploy.sh`. Deferred until Gitea usage is more established. + +- [ ] **Simplify Dockerfile env file selection** — Currently the Dockerfile uses a `BUILD_MODE` arg to + select between `.env.dev`, `.env.test`, `.env.prod` during the Docker build. This is unnecessary + complexity: each server (test Linode, prod Linode, workstation) only ever runs one environment, so + there will only ever be one env file present in that server's app directory. + + **The fix:** Each server's app dir (`/srv/apps/test_aether_app_sveltekit/`, etc.) should have a + plain `.env` file (gitignored, placed manually during server setup). The Dockerfile should just + `COPY . .` and `cp .env .env.runtime` unconditionally — no `if prod / elif test / else dev` + branching for env file selection. + + **What this changes:** + - `aether_app_sveltekit/Dockerfile` — remove the `BUILD_MODE`-driven `cp` block; always use `.env` + - Each Linode app dir gets a plain `.env` instead of `.env.test` / `.env.prod` + - Workstation keeps `.env.local` (for `npm run dev`) and `.env.dev` (for `build:docker:dev`) — + those stay as-is since they legitimately coexist locally + - `BUILD_MODE` arg can stay if needed for other build differences; just stop using it to pick the env file + - Update `.gitignore` in sveltekit to un-ignore `.env.test` / remove stale entries if desired + + **Do not touch before the April 21 show.** Low risk but unnecessary churn right before an event. + +- [ ] **Branch strategy cleanup:** All environments (test, prod, bak) currently pull from the same + branches. `deploy.sh` defaults are `ae_app_3x_llm` / `development` — acceptable for now but + should establish proper branch separation (e.g. `main`/`master` for prod). + +- [ ] **Tier 2 deploy (Gitea webhook):** Push-triggered deploys via Gitea webhook → listener on + Linode → `deploy.sh`. Deferred until Gitea usage is more established. ### [General] -- [x] **Temp Cleanup:** `cleanup_tmp_files` wired in `launcher_background_sync.svelte`; called at launcher startup. Confirmed working. (2026-03-11) -- [x] **`window.print()` for badge print button:** Wired in `ae_comp__badge_print_controls.svelte` — increments count, fires `window.print()`, redirects to badge search. (done) - **Input Field Audit:** Several input fields are missing `name`/`id` attributes or `data-testid`. Known examples: badge override fields in `ae_comp__badge_obj_view.svelte`; template name input in `ae_comp__badge_template_form.svelte`. Matters for: accessibility, autofill, label associations, and test targeting. (For tests, use `getByLabel()` rather than `input[value*=...]` which only checks the HTML attribute, not the Svelte-bound DOM property.) ## ✅ Completed (2026-04) diff --git a/package.json b/package.json index 81770a8d..1d78eef0 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,6 @@ "test:integration": "playwright test", "test:unit": "vitest", "build:docker:dev": "docker compose -f ../aether_container_env/docker-compose.yml build ae_app && docker compose -f ../aether_container_env/docker-compose.yml up -d ae_app", - "build:docker:test": "docker compose -f ../aether_container_env/docker-compose.yml build --build-arg BUILD_MODE=test ae_app && docker compose -f ../aether_container_env/docker-compose.yml up -d ae_app", - "build:docker:prod": "docker compose -f ../aether_container_env/docker-compose.yml build --build-arg BUILD_MODE=prod ae_app && docker compose -f ../aether_container_env/docker-compose.yml up -d --remove-orphans ae_app", "compose:down": "docker compose -f ../aether_container_env/docker-compose.yml --profile database down", "deploy:remote:test": "ssh linode.oneskyit.com 'bash /srv/env/test_aether/deploy.sh test'", "deploy:remote:prod": "ssh linode.oneskyit.com 'bash /srv/env/prod_aether/deploy.sh prod'"