Commit Graph

143 Commits

Author SHA1 Message Date
Scott Idem
002c27e73c fix(file_handlers): use keystroke Cmd+Return to start pptx slideshow
Replace unreliable AppleScript PowerPoint API (run slide show of settings)
with System Events keystroke approach, matching proven behavior from the
old MasterKey app. Opens the file, waits 3s for load, then sends Cmd+Return
to start the slideshow from slide 1.
2026-04-20 17:01:04 -04:00
Scott Idem
3feaf1bbc3 feat(deploy): add deploy script and per-device config files
deploy/deploy.sh — automated deploy: arch detection, scp .app, write
seed.json, verify. Supports single laptop, list, or "all"; --seed-only
flag skips .app copy for key-rotation runs.

deploy/devices.conf — all 19 laptops (num / IP / event_device_id).
deploy/event.env.example — template for gitignored event.env (API key).

README updated: deploy/ table, script usage, manual steps moved to
reference section.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-20 15:02:15 -04:00
Scott Idem
b8b7b253bb assets: add logo and icon files for packaging
Add OSIT logo images (PNG, ICO) and .icns icon used by electron-packager
when producing macOS .app bundles.
2026-04-20 14:27:05 -04:00
Scott Idem
b3f59b7bf5 docs: add onsite deployment guide and device reference table
- Step-by-step SSH deployment instructions (build, copy .app, write seed.json)
- Multi-laptop deployment loop example
- Device reference table: all 19 laptops with IPs and event_device_ids
- Clarify seed.json location, format, and per-event API key workflow
- Document architecture detection (x64 vs arm64) and SSH key setup
2026-04-20 14:26:54 -04:00
Scott Idem
01797f28aa fix: use correct protocol for app URL and suppress DevTools in production
- Use app_base_url from the device record directly instead of always
  falling back to localhost; use https for real domains and http for
  localhost dev URLs only.
- Suppress DevTools in packaged .app builds (app.isPackaged check)
  so they only open during development.
2026-04-20 14:26:43 -04:00
Scott Idem
2af6b3954b fix: write AppleScript to temp .scpt file instead of using -e flag
The -e flag approach breaks on multi-line AppleScript and on file paths
containing spaces or quote characters. Write the script to a temp file
in os.tmpdir() and invoke osascript with the file path instead. The
temp file is cleaned up after execution.
2026-04-20 14:26:34 -04:00
Scott Idem
5a5814b2bc build: add electron-packager and package:mac script
Add electron-packager as a dev dependency and a package:mac npm script
that compiles TypeScript and packages dual-arch (x64, arm64) macOS builds
into builds/ using the OSIT icon.
2026-04-20 14:24:17 -04:00
Scott Idem
0ebfcd18bb chore: ignore builds/ directory and seed config files
builds/ contains large compiled .app bundles (500MB+) not suitable for git.
seed_config.json contains API keys and must not be committed.
2026-04-20 14:24:06 -04:00
Scott Idem
2ad6bce8db fix: repair file_handlers.ts backtick escaping; update README
file_handlers.ts had AI-generated escaped backticks (\`) and template
literal dollar signs (\${) throughout, causing TypeScript compile errors
("Invalid character", "Unterminated template literal"). Fixed all 15
affected lines.

README updated: corrected seed config path from resources/seed_config.json
to ~/seed.json (external to app bundle by design), added explanation of
why it's kept external (no re-signing needed per device), and documented
the 2-char hash prefix cache layout with consistency warning.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 11:50:06 -04:00
Scott Idem
7c0bb6719d feat(file): implement hardened caching with SHA-256 verification
- Added .tmp -> .file download pattern with integrity checks.\n- Implemented auto-purge for stale temp files (>5 mins).\n- Added verify_hash support to check-cache handler.\n- Improved error handling for network interruptions.
2026-02-10 14:07:45 -05:00
Scott Idem
fb8af70742 feat: implement Phase 5 system handlers (automation, power, recording)
- Implement window control, wallpaper reset, and power management.
- Add Aperture recording wrapper and displayplacer layout control.
- Add self-update logic stub for local/remote sources.
- Register and expose handlers via context bridge.
2026-01-30 11:34:53 -05:00
Scott Idem
3d7aa1ab92 feat(native): implement Phase 5 AppleScript handlers and remote control
- Implemented specialized PowerPoint/Keynote handlers with auto-focus and slideshow start.
- Added native:control-presentation for remote navigation (next/prev/stop).
- Added native:list-tools handler for self-documenting the bridge API.
- Added a comprehensive project README.md.
2026-01-26 16:18:00 -05:00
Scott Idem
7784f7f2a3 chore: add VS Code workspace configuration with markdown linting overrides 2026-01-26 15:19:20 -05:00
Scott Idem
083fc56337 feat(bridge): implement presentation-aware handover and robust placeholder resolution
- Upgraded launch_from_cache to automatically trigger LibreOffice/AppleScript launchers after file copy.
- Hardened expandPath to resolve [home] and [tmp] placeholders anywhere in strings via global regex.
- Enhanced get-device-info telemetry to provide absolute home and tmp paths to the UI.
- Exposed native:launch-presentation in preload and implemented explicit LibreOffice (--impress) support on Linux.
2026-01-26 15:12:11 -05:00
Scott Idem
e942b234c4 Fix: Finalize Phase 3 OS interactions and telemetry bridge
- Implemented get_device_info for OS/Network telemetry.
- Added run_cmd_sync using execSync for blocking-style commands.
- Implemented kill_processes (plural) to support multiple process termination.
- Standardized open_local_file_v2 and all bridge methods to snake_case.
- Synchronized preload and main handlers with SvelteKit relay expectations.
2026-01-23 17:23:14 -05:00
Scott Idem
f6875acc72 Enhance: Support flexible hash prefix length and organized caching
- Updated organized path logic to accept variable prefix length.
- Refactored IPC handlers to pass hash_prefix_length from frontend.
- Standardized parameter structures for check-cache and download-to-cache.
2026-01-23 16:56:10 -05:00
Scott Idem
280de213c1 Fix: Standardize Electron bridge and implement robust caching
- Refactored all IPC methods and parameters to snake_case for consistency with SvelteKit.
- Implemented exhaustive background caching engine with download locking.
- Reverted to legacy-proven flat hash storage pattern (hash.file).
- Added axios for reliable stream-based binary downloads.
- Updated preload and main handlers to support recursive room data fetching.
2026-01-23 16:30:23 -05:00
Scott Idem
30db989b2c Enhance: Implement dynamic launcher URL and restore package.json
- Added logic to construct launcher URL based on hydrated device context.
- Implemented dev/production host fallback for demo.localhost.
- Restored missing package.json with proper start and build scripts.
- Finalized IPC handlers for seed and device configuration.
2026-01-23 14:08:31 -05:00
Scott Idem
0497f5767b Initial scaffold for Aether Native V3 Electron Launcher 2026-01-23 13:54:20 -05:00
Scott Idem
fdbd12b64f First iteration of the conversion to use SvelteKit. 2024-08-14 19:26:39 -04:00
Scott Idem
54ae460da5 Unknown 2023-07-27 09:12:44 -04:00
9a7b2b4089 Clean up of code. Prep for simplify later. 2023-06-03 01:34:55 -04:00
5e04deab9c Clean up and simplify the initial loading. This needs more testing. 2023-06-03 01:09:16 -04:00
Scott Idem
99984e7b6c Making file check more efficent. 2023-05-26 18:50:52 -04:00
Scott Idem
fb02fc80a0 Making things easier. 2023-05-26 17:06:38 -04:00
Scott Idem
bc4bf6d294 Making things easier. 2023-05-26 15:20:32 -04:00
Scott Idem
29111e8dce Work on the config and setup 2023-05-24 22:16:26 -04:00
Scott Idem
a25978cf6f No longer using the macOS config path. 2023-05-14 16:03:12 -04:00
Scott Idem
6c7a81f915 Version bump 2023-05-14 15:05:04 -04:00
Scott Idem
9f9ad8b1bb More robust loading. General clean up 2023-05-14 15:03:27 -04:00
Scott Idem
75c5d289cf More robust loading 2023-05-14 14:56:17 -04:00
Scott Idem
4870a56dad Clean up of config 2023-04-24 21:27:45 -04:00
Scott Idem
86feb8517a Getting ready for BG 2023-04-24 18:46:40 -04:00
30b7a00229 Updates for native app to make it work again. Still some left to do. 2023-04-22 13:34:31 -04:00
Scott Idem
ff342fd9ea Updates to style paths and related 2022-11-29 16:47:29 -05:00
Scott Idem
ced234fa08 Clean up 2022-10-28 17:57:55 -04:00
Scott Idem
c37c87f6d4 Work on child processes with node.js 2022-10-27 12:56:19 -04:00
Scott Idem
cdae86dd86 Updated config file name. Cleaned up files. 2022-10-26 17:50:49 -04:00
Scott Idem
14cc3d1c3e Updated config file name 2022-10-26 17:34:26 -04:00
Scott Idem
a54d2c08bc Added screen media access request 2022-10-26 17:16:58 -04:00
Scott Idem
6e7dacc1e0 Improved dynamic loading of CSS and JS files! 2022-10-17 13:48:01 -04:00
Scott Idem
f3558dc75b Minor changes 2022-10-16 23:27:19 -04:00
Scott Idem
a83334aac7 Adding initial load options 2022-10-16 22:43:26 -04:00
Scott Idem
987642886c Adding initial load options 2022-10-16 22:38:07 -04:00
Scott Idem
fb75d450ac Prep for LCI 2022-10-16 22:37:40 -04:00
Scott Idem
0dce6c89c0 Prep for LCI 2022-10-16 20:07:30 -04:00
Scott Idem
0028df4604 Prep for LCI 2022-10-16 19:23:21 -04:00
Scott Idem
040ab4aa4e Rework of loading the index file. 2022-10-15 23:10:54 -04:00
Scott Idem
2d27750d0e Prep for LCI 2022-10-15 20:19:50 -04:00
Scott Idem
adca2e511b Testing 2022-10-14 17:53:39 -04:00