# DigiDala — Alpha 50.6.8 Changeset

## Release identity

```text
Base: v0.4.0-alpha.50.6.7
Release: 0.4.0-alpha.50.6.8
Commit: 6af8591
Tag: v0.4.0-alpha.50.6.8
Status: deployed to VPS; initial manual Telegram QA passed
Date: 2026-09-24
```

## Scope

Alpha 50.6.8 closes the first post-release Competitive lifecycle issues found during live Mini App testing and establishes a stable user-visible navigation model for the existing campaign archive spaces.

The user-visible archive remains limited to the Mandala types that already have persistent campaign archives in the current architecture:

- Special Mandalas.
- Competitive Mandalas.

Sandbox, Support and Creative remain cyclic Mandalas without a separate user-visible archive snapshot model.

## Changes

- Add generation-specific cache-busting to active campaign artwork URLs so reused browser cache entries cannot silently keep an older Competitive image.
- Add generation-specific cache-busting to archive artwork URLs so an archive view gets a distinct immutable URL identity from the active campaign view.
- Add a permanent `Архив` entry point to the Mini App.
- Add an archive index backed by the existing `/api/v1/campaigns/archives` API, showing persisted Special and Competitive archives and linking to the existing detailed trace view.
- Keep archive detail accessible through the existing Telegram `archive-<slug>` deep links.
- Make empty Special and Competitive spaces navigable instead of trapping the user in a route without controls.
- Keep those empty spaces reachable through the ordinary Mandala left/right carousel even when no active campaign exists.
- Close the Mandala carousel into a circular sequence: moving right from the last Competitive node returns to Sandbox; moving left from Sandbox reaches the last node.
- Represent campaign spaces as explicit navigation nodes with stable `navigation_key`, `navigation_kind` and `route_kind` fields, so future user-visible space types can be added without changing the circular navigation algorithm.
- Dispatch space navigation through a route/bootstrap handler map instead of hard-coding the carousel wrap logic to the current two campaign types.
- Add regression coverage for the circular navigation, the presence of inactive campaign-space nodes, the archive route and the versioned campaign/archive artwork URLs.

## Explicitly not changed

- No snapshot/archive model was introduced for Sandbox, Support or Creative.
- No change was made to the server-authoritative destruction lifecycle.
- Competitive queued/active lifecycle semantics remain unchanged.
- Existing Telegram Main Mini App share-link behavior remains unchanged.

## Automated verification

```text
Structure: OK
JavaScript syntax: OK
Unit: 21/21
Integration: 46/46
API: 17/17
Total: 84/84

git diff --check (intended candidate files): OK
```

## Deployment / manual Telegram QA

The exact tag `v0.4.0-alpha.50.6.8` was committed as `6af8591`, pushed to GitHub and deployed successfully to `/opt/pixdala/releases/v0.4.0-alpha.50.6.8`. The deployed release passed the same 84/84 automated verification.

Initial manual Telegram QA passed for the new Archive entry/index, empty Special/Competitive navigation, circular left/right traversal and the previously observed Competitive artwork-cache regression. On the client where the stale Owl/Lark artwork had previously appeared, a newly created Competitive campaign now shows the current uploaded artwork. Two Competitive campaigns have also been created for queued-lifecycle verification.

The complete Competitive lifecycle through winner determination, destruction, archive and automatic activation of the next queued campaign remains open for final manual verification.
