Commit Graph

142 Commits

Author SHA1 Message Date
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
Scott Idem
eb53e46ebc A lot of clean up!!! 2022-10-14 17:22:14 -04:00