Skip to content

Releases: Gravewright/gravewright

Gravewright v2.1.0

Choose a tag to compare

@ricardoporfirio ricardoporfirio released this 28 Jun 16:17

Gravewright v2.1.0-alpha

Alpha release. The SDK 1 extension surface remains frozen. Gravewright is
usable for real campaigns if you keep regular backups, but database schema,
storage layout, realtime events, and public API behavior may still change
between Alpha releases, and an automatic upgrade path is not guaranteed yet.

This release builds a complete card system on top of the frozen SDK 1 surface:
generic decks, private hands, and a fully interactive card/asset table layer.

Highlights

  • Card decks & hands — generic decks, draw piles, discard, private per-player
    hands, redacted card state, and shuffle/reset/draw flows.
  • Card table layer — cards played to a scene are anchored to world
    coordinates and pan/zoom with the board; move, resize, rotate, flip, and
    z-order them, matching the scene-image (asset) interaction model.
  • Hand workflow — drag a card from your hand onto the table; the hand "flip"
    control chooses which face (front/back) it lands on; draw a card straight to
    chat.
  • Multi-selection (cards & images) — Shift/Ctrl-click to toggle, or a
    right-to-left marquee drag to box-select (left-to-right still selects
    tokens). Move, rotate, delete, and z-order the whole selection together;
    Delete/Backspace removes it.
  • GM controls — upload card fronts/backs, remove a deck and all of its cards.
    Players can manipulate the cards they own; the image (asset) library is GM-only.

Install / Upgrade

Fresh install or local run:

grave run

Upgrading an instance with data you care about — back up first:

grave backup -o pre-upgrade.zip --include-assets --include-packages --verify
grave restore pre-upgrade.zip --dry-run   # test the restore on a copy

Then upgrade and confirm a clean start with grave doctor.

Breaking changes

  • None to the SDK 1 contract — the SDK 1 extension surface stays frozen.
  • Pre-Alpha System API / Module API remain removed and unsupported.

Schema / storage changes

  • New card-system tables (decks, deck instances, piles, pile entries, card
    instances, scene card placements) and supporting migrations.
  • As with any Alpha release, an automatic upgrade path for existing data is not
    guaranteed — back up and test a restore before upgrading.

SDK / package manifest changes

  • None. sdkVersion stays 1; package compatibility is unchanged.

Known data-loss risks

  • Alpha releases do not guarantee an upgrade path for existing tables.
  • Always keep a verified backup before upgrading a campaign you care about.

Known issues

  • Scripted SDK packages run trusted JavaScript in the browser; install them only
    from trusted authors.
  • Remote/zip package installation and package signatures are future hardening
    milestones.

Feedback wanted

  • Exact reproduction steps, server/browser logs (secrets removed), and
    screenshots of incorrect UI state.
  • Campaign size, map dimensions, and player count for performance reports.
  • Confusing docs or missing extension APIs.

Report problems and suggestions in
issues.

Gravewright v2.0.0-alpha.0 — SDK Freeze

Choose a tag to compare

@ricardoporfirio ricardoporfirio released this 17 Jun 23:13

Gravewright v2.0.0-alpha.0 — SDK Freeze

Gravewright v2.0.0-alpha.0 freezes SDK 1 as the supported package extension contract.

This release turns Gravewright into a system-agnostic, package-first VTT platform. Rulesets and addons are now expected to ship as SDK packages instead of being baked into the core.

This release also includes a built package artifact that can be installed through the package manager UI or validated and installed manually.

Highlights

  • Freezes SDK 1 as the supported package extension contract.
  • Removes pre-SDK-1 legacy compatibility surfaces.
  • Keeps the core platform system-agnostic.
  • Removes bundled DnD5e from the core.
  • Ships ruleset support as external SDK packages.
  • Includes a built package artifact for installation and validation.
  • Supports external ruleset packages through the grouped package layout.
  • Stabilizes package validation, install, update, and diagnostics.
  • Stabilizes managed package storage via storage.sqlite.
  • Stabilizes package interop via sdk.bus.
  • Stabilizes declarative sheets and HTML/runtime sheet support.
  • Updates the package manager UI for ruleset inspection and installation.
  • Adds one-click setup scripts for Windows, macOS, and Linux.
  • Adds Docker deployment support.
  • Verifies package-aware backup and restore coverage.

SDK 1 frozen surface

SDK 1 now includes the following supported extension surfaces:

  • manifest v1;
  • grouped package layout: data/packages/{kind_plural}/{id};
  • declarative JSON package model;
  • actor and item registration;
  • declarative sheets;
  • HTML sheets;
  • sheet runtime behavior through sheets.runtime;
  • combat runtime behavior through combat.runtime;
  • package-to-package messaging through sdk.bus;
  • managed package storage through storage.sqlite;
  • package settings;
  • package content packs;
  • package validation and diagnostics;
  • package-aware backup and restore.

System-agnostic core

Gravewright core no longer bundles DnD5e as a built-in ruleset.

5e support is distributed separately as an SDK package:

When included with this release, the built package artifact can be installed directly through the Gravewright package manager UI.

This keeps the core platform clean and lets game systems ship independently as packages.

Installing Gravewright

Windows

Download the release archive, extract it, and run:

install-windows.bat

macOS / Linux

Download the release archive, extract it, then run:

bash install-macos-linux.sh

Or:

chmod +x install-macos-linux.sh
./install-macos-linux.sh

Manual setup

uv sync --frozen
uv run python scripts/setup_local_env.py
uv run python -m app.cli doctor
uv run python -m app.cli run --open

Then open:

http://127.0.0.1:8000

Docker

docker compose up -d --build

Then open:

http://localhost:8000

Installing rulesets

Rulesets are installed as packages.

Recommended: use the Gravewright web UI.

  1. Open Gravewright.
  2. Go to Sistemas de Regras / Rulesets.
  3. Click Enviar e instalar.
  4. Select a ruleset package .zip.
  5. Review package details.
  6. Click Instalar.

If you are using the package artifact included with this release, select the provided built package .zip during installation.

Manual package installation is also supported:

uv run python -m app.cli package validate data/packages/rulesets/my-rpg
uv run python -m app.cli package install my-rpg --enable
uv run python -m app.cli doctor

Validation

This release was validated with:

unit test suite
e2e test suite
compileall
SDK reference check
alembic upgrade head
doctor --strict --json
backup --include-assets --include-packages --verify
restore --dry-run

The included built package artifact was also validated against the SDK 1 package contract.

Expected doctor output may include a development warning if SESSION_SECRET is still set to the default value.

Alpha status

This is still an Alpha release, not LTS.

Real campaign use is no longer discouraged when backups are used, but you should still:

  • back up before upgrading;
  • test upgrades before important sessions;
  • keep export/backup copies of campaign data;
  • expect possible breaking changes before LTS, especially outside the frozen SDK 1 package contract.

Notes for package authors

Package authors should target SDK 1 and use the documented extension surfaces.

Do not depend on removed pre-SDK-1 compatibility APIs.

Use:

  • sheets.runtime instead of old sheet hook naming;
  • combat.runtime instead of old combat hook naming;
  • sdk.bus for package-to-package integration;
  • storage.sqlite for managed package storage;
  • grouped package layout under data/packages/{kind_plural}/{id}.

Upgrade notes

If you were using an earlier Alpha with bundled DnD5e, install the external 5e SRD package instead:

If a built package artifact is included with this release, install that package through the package manager UI or through the CLI before running campaigns that depend on it.

If your local database references the old bundled DnD5e package, remove or update that package reference before running campaigns.

Known limitations

  • Gravewright is not LTS yet.
  • Marketplace/premium package distribution is not implemented yet.
  • Cards/deck support is not part of core in this release.
  • Some package ecosystems are still being developed externally.

Summary

Gravewright v2.0.0-alpha.0 is the SDK Freeze release.

It establishes Gravewright as a self-hostable, server-authoritative, SDK-driven VTT where game systems and extensions ship as packages instead of being baked into the core.

This release also provides a built package artifact so the SDK package workflow can be installed, inspected, validated, and tested immediately.