Skip to content

Conversation

@thkruz
Copy link
Owner

@thkruz thkruz commented Oct 30, 2025

No description provided.

…license

- Rewrote and reorganized README: added Technology Stack, Architecture, Quick Start, Development Commands, Troubleshooting, Deployment, Features, Screenshots, Recent/Previous Versions, Contributors, Trademarks, Use of AI, Additional Resources, and examples.
- Improved formatting and content (images, code blocks, examples, API/doc links) and clarified project overview and feature set.
- Updated license section to explicitly describe AGPL-3.0 implications and example use cases.
- Minor: add rewrap.wrappingColumn to .vscode/settings.json (VSCode settings tweak).
@thkruz thkruz self-assigned this Oct 30, 2025
Copilot AI review requested due to automatic review settings October 30, 2025 09:41
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 30, 2025

Deploying keeptrack-space with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6c8f996
Status: ✅  Deploy successful!
Preview URL: https://32a8c397.keeptrack-space.pages.dev
Branch Preview URL: https://develop.keeptrack-space.pages.dev

View logs

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 30, 2025

Deploying celestrak-keeptrack with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6c8f996
Status: ✅  Deploy successful!
Preview URL: https://e585c9b3.celestrak-keeptrack.pages.dev
Branch Preview URL: https://develop.celestrak-keeptrack.pages.dev

View logs

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR comprehensively revamps the README.md to provide a more structured, professional, and user-friendly documentation experience. The update transforms the README from a basic overview into a complete guide covering installation, architecture, contributing guidelines, and licensing details.

Key Changes:

  • Restructured content with clear sections and improved navigation
  • Added detailed installation guide with troubleshooting steps
  • Documented project architecture and design principles
  • Expanded contributing guidelines with plugin development examples

Reviewed Changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 2 comments.

File Description
README.md Complete rewrite with improved structure, detailed sections for installation/architecture/contributing, expanded feature descriptions, and comprehensive licensing information
.vscode/settings.json Added rewrap.wrappingColumn setting to maintain consistent line wrapping at 180 characters


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 30, 2025

Deploying keeptrack-space-embed with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6c8f996
Status: ✅  Deploy successful!
Preview URL: https://094bb97a.keeptrack-space-embed.pages.dev
Branch Preview URL: https://develop.keeptrack-space-embed.pages.dev

View logs

thkruz and others added 12 commits October 30, 2025 05:44
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
- Promote main heading to H1 and adjust subheading levels for consistency
- Replace "Report a Vulnerability" issue instruction with direct contact ([email protected])
- Wrap long lines and remove extra whitespace for cleaner formatting
Replace keepTrackApi.on(...) calls with EventBus.getInstance().on(...) and add EventBus import so uiManagerFinal and onCruncherMessage listeners are registered correctly.
- Replace separate test environment files (test/setup.js, test/test-env.js, test/test-env-mocks.js) with a single test/jest-setup.js
- Update jest.config.js setupFiles to use <rootDir>/test/jest-setup.js
- Update satellite-view.test.ts to import EventBus, subscribe/emit via EventBus.getInstance(), and re-enable the addHtml test
…gistry and EventBus; update tests; bump version

- Major dependency-injection refactor:
  - Replace direct keepTrackApi usage across the codebase with:
    - ServiceLocator.getXxx() for core singletons (renderer, scene, timeManager, catalogManager, sensorManager, uiManager, etc.)
    - PluginRegistry.getPlugin() / getPluginByName() for plugin access
    - EventBus.getInstance().emit(...) in place of keepTrackApi.emit(...)
  - Remove many keepTrackApi imports and add ServiceLocator / PluginRegistry / EventBus imports where needed.
  - Adjust code to call PluginRegistry.getPlugin(SelectSatManager) etc., and ServiceLocator.getRenderer(), ServiceLocator.getMainCamera(), etc.

- Rendering & engine updates:
  - Updated many rendering managers, meshes, line/orbit managers, and camera logic to use ServiceLocator for renderer/camera/dots data.
  - Updated shaders/mesh code to use PluginRegistry/ServiceLocator where appropriate.

- Plugin updates:
  - Updated all plugins to use PluginRegistry and ServiceLocator instead of keepTrackApi, and use EventBus for event emissions.
  - Adjusted sensor, orbit, watchlist, satellite, UI, and many analysis plugins accordingly.

- UI & utils:
  - Updated UI components (draggable boxes, modals, advice, loading, sound, settings, presets) to call ServiceLocator for managers and EventBus for events.
  - Updated presets (darkClouds, startalk) to use PluginRegistry / ServiceLocator.

- Tests:
  - Updated tests to reflect the DI refactor: replaced keepTrackApi mocks/calls with ServiceLocator/PluginRegistry where applicable.
  - Updated tests to emit events via EventBus.getInstance().emit(...) instead of keepTrackApi.emit(...)
  - Adjusted setup helpers and environment mocks to register/use ServiceLocator singletons.

- Misc:
  - Bumped application version in settings/version.js to 11.0.1
  - Updated various small callsites and signatures to align with the new access pattern.

This change centralizes access to core services and plugins, removing the old global keepTrackApi dependency and standardizing event emission through EventBus. Tests and presets were updated accordingly.
… in UiManager and rename file

Replace legacy global keepTrackApi usage in the UI manager with ServiceLocator and EventBus APIs.
- Use ServiceLocator for renderer, time, sound and color-scheme managers.
- Use EventBus.getInstance() for emitting/subscribing to events.
- Rename file to ui-manager.ts and update internal references to match the new APIs.
- Preserve existing UI behavior (toasts, footer/menu toggles, search, bottom icon handling, resizing).

No behavior changes, only API surface and file naming cleanup.
…n / ServiceLocator

Replace direct keepTrackApi usage across the codebase with:
- KeepTrack.getInstance() for containerRoot and initialization state
- ServiceLocator.getUiManager() or other ServiceLocator helpers for UI/plugin actions
- PluginRegistry / ServiceLocator usage where appropriate

Key changes:
- Add containerRoot and isInitialized to KeepTrack; rename isReady -> isInitialized and update startup flow
- Remove containerRoot and isInitialized fields from KeepTrackApi and adjust plugin lookup typing
- Update many modules and plugins to import KeepTrack or ServiceLocator instead of keepTrackApi
- Update tests and test environment to use KeepTrack.getInstance().containerRoot
- Minor UI/comment tweaks and test adjustments

This centralizes DOM/root and ready state on the KeepTrack singleton and standardizes event/ui access via ServiceLocator/EventBus.
- Update VSCode launch.json and tasks.json to use http://localhost:5544
- Update SettingsManager installDirectory for local node tests to :5544
- Update url-manager tests to use localhost:5544 and add missing ServiceLocator/EventBus imports
- Minor formatting cleanup in launch.json args
…ers to thread managers

- Add generic WebWorkerThreadManager to unify worker lifecycle, node/jest support and messaging.
- Implement OrbitCruncherThreadManager and SatCruncherThreadManager; move sat/orbit cruncher message handling out of CatalogManager/OrbitManager into dedicated thread managers.
- Replace direct Worker usage with thread managers across the codebase (CatalogManager, OrbitManager, TimeManager, UrlManager, SettingsMenu, tests, etc.).
- Create strongly-typed orbit-cruncher interfaces (orbit-cruncher-interfaces.ts) and update orbitCruncher webworker to use typed messages & response codes.
- Rework OrbitManager: move/restore implementation to src/app/rendering/orbit-manager.ts and wire it to OrbitCruncherThreadManager; remove old engine/rendering/orbitManager.ts.
- Add new thread managers under src/app/threads and update SatCruncher handling (SatCruncherThreadManager).
- Update KeepTrack to own thread registry, pass instance to Engine, and delay "ready" until threads are initialized; expose KeepTrack.getInstance() where needed.
- Modify Engine API: accept Application (KeepTrack) instance, rename internal flags, add pause()/resume(), and gate updates on application readiness.
- Update TimeManager to post time sync to orbitThreadMgr and use consistent message typing.
- Clean up imports/types (OrbitManager paths, orbitCruncher msg enums/types, remove obsolete types/constants).
- Adjust tests and environment imports to new orbit manager/thread manager locations.

This refactor centralizes worker management, adds typed worker messaging, and decouples cruncher logic from rendering/catalog classes to improve testability and thread lifecycle handling.
thkruz and others added 7 commits November 4, 2025 21:18
…dules

- Split monolithic settings.ts (1565 lines) into 8 category files:
  * graphics-settings.ts - Rendering, textures, visual effects
  * ui-settings.ts - Interface, menus, display settings
  * camera-settings.ts - Camera movement, FOV, zoom
  * orbital-settings.ts - Orbit calculations, propagation
  * data-settings.ts - Data sources, catalogs, servers
  * performance-settings.ts - Optimization and limits
  * color-settings.ts - Color schemes and object colors
  * core-settings.ts - Core settings, plugins, filters

- Refactored SettingsManager to use category instances with programmatic
  property accessors for 100% backward compatibility

- Enhanced settingsOverride.js to support both:
  * Flat syntax (backward compatible): isDrawSun: true
  * Nested syntax (recommended): graphics: { isDrawSun: true }

- Updated deepMerge to handle partial nested overrides while preserving
  defaults for unspecified properties

- Maintained all existing methods and functionality
- All property access patterns remain unchanged for consuming code

Breaking Changes: None - fully backward compatible
… checking

- Added interface SettingsManager that extends all category classes
- Uses TypeScript's declaration merging to expose all properties
- Fixes 'property does not exist' TypeScript errors
- Runtime behavior unchanged - properties still delegated via getters/setters
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ thkruz
❌ claude
You have signed the CLA already but the status is still pending? Let us recheck it.

- Updated WebWorkerThreadManager to improve Node environment handling and mock worker initialization for testing.
- Removed redundant imports and organized code in parse-get-variables.ts and settings.ts.
- Added ServiceLocator and EventBus imports in various test files to enhance dependency management.
- Updated test cases in catalog-manager, color-scheme-manager, and other test files to utilize ServiceLocator for mocking.
- Skipped certain tests in color-scheme-manager and satellite-view.test.ts to address known issues.
- Improved setup functions in standard-env.ts to ensure proper initialization of components.
- Enhanced test files for various plugins and components to ensure better integration with the ServiceLocator pattern.
@thkruz thkruz changed the title Update Documentation Update Documentation and Implement User API V2 Nov 16, 2025
@thkruz thkruz merged commit ab8ffd2 into main Nov 16, 2025
12 of 13 checks passed
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants