Community was never a separate community.quasarke.net host -- it lives
inside the Drop server itself at {server}/community, same as the server-side
fold-in two commits up. The desktop client's own community.rs, models.rs,
and the two community.vue pages still assumed the old sidecar design
(Settings.communityUrl/communityEndpoint defaulting to
https://community.quasarke.net), so this corrects them to match:
- community.rs now posts to {server}/api/v1/ingest/{session-start,
session-stop,achievements} (the fixed contract, matching the wrapper) via
the same generate_url()/make_authenticated_post_json() helpers
cloud_saves_commands.rs already uses, instead of an unauthenticated
bespoke HTTP client pointed at a hardcoded second host. {server} is
DB.base_url -- whatever Drop server the user actually signed into.
- database/src/models.rs: dropped the now-meaningless community_endpoint/
community_url Settings fields; kept enable_community_telemetry as the
only toggle.
- community.vue (the tab) and settings/community.vue: resolve the page URL
via the existing gen_drop_url Tauri command (same one the admin-panel
link already uses) instead of a stored/hardcoded URL.
- error.vue: the generic pre-auth error page can render before any server
is configured, so it can't resolve a per-server community link the way
community.vue does -- pointed its "Support" link at our docs instead of
the retired community.quasarke.net.
Also fixes a real release-blocking bug in process_manager.rs found while
verifying this compiles: the drop://game-launch telemetry emit held
install_dir (a reference borrowed out of db_lock via game_status) live past
the db_lock.applications.transient_statuses.insert() mutable borrow a few
lines above it -- an E0502 that fails every build, release or debug.
Fixed by cloning install_dir to an owned String before that mutable borrow
point and using the clone in the emit instead.
Verified: cargo check -p drop-app passes; full `cargo tauri build` release
build succeeds and produces a working NSIS installer (7z archive-test:
"Everything is Ok").
Retarget every upstream Drop-OSS/discord/droposs.org reference to our own
infra (github.com/Drop-OSS -> devops.quasarke.net/drop-oss, Discord ->
community.quasarke.net), rename the product to "Drop Desktop Client
(Quasarke Edition)" with a distinct app identifier so it can't collide with
a genuine upstream install, and note in updates.rs that there was never a
self-updater to repoint (no tauri-plugin-updater dependency exists anywhere
in this client -- confirmed via Cargo.toml/tauri.conf.json).
Community tab (desktop/main/pages/community.vue) replaces the upstream
"Under construction" stub: opens community.quasarke.net in the system
browser via tauri-plugin-shell (already covered by the existing
shell:allow-open capability, no CSP/capability changes needed).
Native play-session + achievements telemetry (desktop/src-tauri/src/community.rs):
process_manager now emits drop://game-launch / drop://game-exit tauri events
around every game launch, picked up by listeners in src/lib.rs that POST
session-start / session-stop / achievements to the community service,
matching homelab-compose's drop-launch-wrapper.ps1 contract exactly
(same endpoint paths, same {"ok":true} ack requirement, same
%LOCALAPPDATA%\drop-community\queue offline-queue format/location so a
machine running both the client and the per-game wrapper shares one
flush point). This gives every game launched through the client the same
tracking the wrapper gives individually-wrapped games, without requiring
the wrapper to be installed.
The community endpoint is a single configurable Settings field
(communityEndpoint/communityUrl/enableCommunityTelemetry in
database/src/models.rs, exposed via a new Settings > Community tab), not
hardcoded at each call site.
* Fix Windows and Linux launch
* Add process handler selector, pin Prisma
* Regenerate lcofkiel
* Fix torrential inclusion in image
* Fix layouting
* Implement tree kill for Windows
* Fix server lint
* chore: Major refactoring
Still needs a massive go-over because there shouldn't be anything referencing tauri in any of the workspaces except the original one. Process manager has been refactored as an example
Signed-off-by: quexeky <git@quexeky.dev>
* fix: Remote tauri dependency from process
Signed-off-by: quexeky <git@quexeky.dev>
* refactor: Improvements to src-tauri
Signed-off-by: quexeky <git@quexeky.dev>
* refactor: Builds, but some logic still left to move back
Signed-off-by: quexeky <git@quexeky.dev>
* refactor: Finish refactor
Signed-off-by: quexeky <git@quexeky.dev>
* chore: Run cargo clippy && cargo fmt
Signed-off-by: quexeky <git@quexeky.dev>
* refactor: Move everything into src-tauri
Signed-off-by: quexeky <git@quexeky.dev>
---------
Signed-off-by: quexeky <git@quexeky.dev>