Skip to content

Restore website rebuild trigger on stable releases (fixes #53)#57

Merged
krazyjakee merged 5 commits into
masterfrom
claude/confident-nobel-4a4c94
May 9, 2026
Merged

Restore website rebuild trigger on stable releases (fixes #53)#57
krazyjakee merged 5 commits into
masterfrom
claude/confident-nobel-4a4c94

Conversation

@krazyjakee

Copy link
Copy Markdown
Contributor

Summary

  • Re-add the repository_dispatch event_type=web-export-updated step in release.yml that pings accordwebsite/docker-publish.yml after each stable release. The step was removed in 2cc41c0 (2026-03-14) without an explanation, and three releases (v0.1.15, v0.1.16, v0.1.17) have shipped since with no web redeploy.
  • Annotate variant/extensions_support=true in the web export user flow as load-bearing for lua-gdextension, so future cleanup doesn't silently re-introduce the same bug.

Why (fixes #53)

The deployed web client at https://daccord.gg/chat/ throws:

GDExtension libraries are not supported by this engine version. Enable "Extensions Support" for your export preset and/or build your custom template with "dlink_enabled=yes".

Diagnosis (verified, not theory):

Deployed (https://daccord.gg/chat/) Latest release v0.1.17
Daccord.wasm size 38 MB (monolithic non-dlink) 1.6 MB (dlink loader)
Daccord.side.wasm 404 Not Found 41 MB (dlink engine)
Last-Modified 2026-03-19 2026-03-27

The deployed build pre-dates 7c643d2 (2026-03-20) which set extensions_support=true. With that flag off, Godot exports a single non-dlink Daccord.wasm and no .side.wasm — yet addons/lua-gdextension/luagdextension.gdextension is still bundled in the PCK, so the engine errors out at startup when it tries to load it. Releases since v0.1.15 fix this in the build, but the website never picked them up because the dispatch step that triggers accordwebsite/docker-publish.yml was removed.

A one-shot gh workflow run docker-publish.yml --repo DaccordProject/accordwebsite was already kicked off to deploy v0.1.17 immediately. This PR ensures the same thing happens automatically on the next tag.

Notes for reviewers

  • The dispatch is gated by if: ${{ !contains(github.ref_name, '-') }} so pre-release tags (v0.1.18-rc.1 etc.) don't redeploy the website.
  • Uses the existing secrets.GH_PAT (same secret used elsewhere in release.yml).
  • Tempting alternative I rejected: adding addons/lua-gdextension/* to the Web preset's exclude_filter. That treats the symptom (no GDExtension → no error) but disables Lua plugins on web entirely, and quietly relies on scripts/plugins/scripted_runtime.gd:87's ClassDB.class_exists guard. The current preset already supports lua-gdextension on web correctly via extensions_support=true; the only real bug was that nothing was deploying it.

Test plan

  • Tag a stable release (or any non-- tag in a fork) and confirm the Trigger website rebuild step runs and accordwebsite/docker-publish.yml is invoked
  • After the in-flight manual run finishes, confirm https://daccord.gg/chat/Daccord.side.wasm returns 200 (currently 404) and the web client loads without the GDExtension error

krazyjakee and others added 5 commits May 9, 2026 15:51
Implements the privacy "Leave & Delete My Data" flow per
user_flows/gdpr.md: per-space DELETE /members/@me?delete_data=true
endpoint in accordkit, owner-must-transfer guard in both UI
(guild_icon context menu, server_settings Privacy section) and
client paths, and confirmation dialog with red-styled danger button.

Bundles an unrelated idle profile-lock feature that landed on the
same client.gd edits: 2x idle-timeout triggers profile_lock_requested
(wired in main_window.gd), Config.profiles.active_has_password() helper.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Notification granularity (user_flows/in_app_notifications.md): per-channel
levels (all/mentions/muted) via channel context menu, per-server
suppress_everyone override in server settings, gateway message handler
and SoundManager both gate on the channel/space level before playback,
config save deferred and flushed on shutdown.

Activities sidebar (user_flows/activities_list.md): collapsible
ACTIVITIES section at the bottom of the channel list surfacing active
plugin sessions per space, space-level session cache with
fetch/fallback, real-time updates via active_sessions_updated /
activity_session_state_changed / activity_participants_updated /
activity_ended signals, Join Lobby and Join Voice flows with
permission and host-in-voice checks.

Plugin platform services (user_flows/plugin_platform_services.md):
plugin_leaderboard_updated gateway event, leaderboard REST endpoints
(submit/get/around/get_user), Lua bridge functions in scripted_runtime,
AccordPluginManifest.services field.

Bundled because client_gateway.gd is a shared edit point.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds tests/unit/test_client_plugins_guards.gd covering 25 early-return
guards across join_activity, check_active_session, voice lifecycle
handlers, broadcast presence, space session cache, role updates,
bundle extraction edge cases, and fetch_plugins.

Note: leaderboard_* methods introduced in the prior commit are not
yet covered — left as a follow-up so this PR can ship independently.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Caps the on-disk emoji cache at 500 files, evicting the
oldest by mtime when a new emoji is saved. Skips entries
with invalid mtime and warns on eviction failures.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Re-add the repository_dispatch step removed in 2cc41c0 that pings
accordwebsite/docker-publish.yml after each stable release. Without
it, the deployed web client at daccord.gg/chat/ froze on the
2026-03-19 build (pre-extensions_support=true) and threw "GDExtension
libraries are not supported by this engine version" because the older
non-dlink wasm couldn't load the bundled lua-gdextension. Three
releases (v0.1.15, v0.1.16, v0.1.17) shipped with no web update.
Fixes #53.

Also document the load-bearing variant/extensions_support=true setting
in the web export user flow so future cleanup doesn't silently
re-introduce the same bug.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@krazyjakee krazyjakee merged commit 738f045 into master May 9, 2026
5 of 6 checks passed
krazyjakee added a commit that referenced this pull request Jun 8, 2026
- Invite acceptance: the add-server dialog now redeems an invite code via
  `invites.accept` after connecting — both from a pasted `?invite=` URL and
  from `daccord://invite/<code>` deep links (which main.dart already routes
  to this dialog), then upserts the joined space. This closes the biggest
  gap (there was previously no way to join via an invite) and the deep-link
  join path.
- Bulk revoke: per-invite checkboxes + a "Revoke N" action in the invite
  manager, alongside the existing single revoke.
- Search/filter the invite list by code.

Deferred: channel-level invites (SDK has createChannel/listChannel, but
neither client's UI exposes them — space-level matches the reference's
invite_management_dialog).

Closes #57.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@krazyjakee krazyjakee deleted the claude/confident-nobel-4a4c94 branch June 28, 2026 23:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Web version throws an error

1 participant