djust 0.3.5 was stabilized through 2 pre-releases, and most of its changes are recorded under them: 0.3.5rc1, 0.3.5rc2.
Added
djust-deployCLI — newpython/djust/deploy_cli.pymodule providing deployment commands for djustlive.com. Install withpip install djust[deploy]. Available via thedjust-deployentry point:djust-deploy login— prompts for email/password, authenticates against djustlive.com, and stores the token in~/.djustlive/credentials(mode0o600)djust-deploy logout— calls the server logout endpoint and removes the local credentials filedjust-deploy status [project]— fetches current deployment state; optionally filtered by project slugdjust-deploy deploy <project-slug>— validates the git working tree is clean, triggers a production deployment, and streams build logs to stdout
See
docs/website/guides/djust-deploy.md.
Fixed
dj-hookelements now initialize afterdj-navigatenavigation —updateHooks()is called afterlive_redirect_mountreplaces DOM content via WebSocket and SSE mount handlers. Previously, hook lifecycle callbacks (mounted(),destroyed()) were skipped after client-side navigation, leaving hook-dependent elements (e.g., Chart.js canvases) uninitialized. (#408)- Event handler exceptions now logged with full traceback in production — Previously,
handle_exception()only logged the exception class name (e.g.ValueError) whenDEBUG=False, hiding the error message and stack trace. Now logs type, message, and traceback atERRORlevel regardless ofDEBUGmode. Client responses remain generic in production. (#415) - DJE-053 no longer fires as a warning for idempotent event handlers — When an
@event_handlerruns successfully but produces no DOM changes (e.g. toggle clicked in target state, debounced input with unchanged results, side-effect-only handlers), the empty diff is now silently dropped atDEBUGlevel rather than logged as aWARNING. This matches Phoenix LiveView behaviour. TheWARNING-level DJE-053 is preserved for genuine VDOM failures (patches=None), which fall back to a full HTML update and risk losing event listeners. (#415)