Skip to content

Steam roadmap

Purpose of this document: Define the product target for shipping Conversation Simulator as a paid ($9.99) Steam edition for non-technical players — without compromising the local-first, open-source, no-telemetry principles of the base project. Every downstream Steam-release issue should reference this document as its shared product target.


The Steam edition costs $9.99 (USD), a one-time purchase — no subscription. The identical software is free and open source on GitHub: anyone can clone the repository, build it, and run it at no cost. The $9.99 buys the ready-to-run, code-signed, notarized, auto-updating package (plus Steam Deck verification, Steam Cloud settings sync, and achievements) and funds continued development. It does not unlock anything the source build lacks — the paid build is a convenience and a way to support the work, not a gate on the product.

Outright Mental publishes the Steam edition. The four official scenario packs remain free and openly licensed (CC BY 4.0) in both the source build and the Steam build.

The Steam edition makes the same guarantee as the open-source build:

Conversations, prompts, transcripts, audio, and model outputs stay on the player’s machine. Nothing is sent to any server during play. Model and pack downloads happen only when the player explicitly requests them.

This is backed by code and CI gates, not just policy. See privacy.md and network-security.md for the runtime enforcement details.

The Steam edition ships with telemetry absent, matching the open-source build. No usage analytics, session counts, feature-use events, or background pings are transmitted. If telemetry is ever proposed for a future milestone it will require explicit opt-in, documented notice, and a default-off posture — and it will never include conversation content.

No model weights are silently bundled in the installer or downloaded without the player’s knowledge. Every model download must:

  • Display the model name and source before any bytes transfer.
  • Show the license (e.g. Apache 2.0, Llama Community License) so the player understands the terms.
  • Show the download size so the player can plan for disk space and bandwidth.
  • Show the SHA-256 checksum that will be verified after download.
  • Show the destination path on the player’s machine where the file will land.

Players must confirm each download. Cancelling a download must leave no partial files. Pack downloads follow the same rules.

First-party premium DLC, no open marketplace

Section titled “First-party premium DLC, no open marketplace”

Paid content ships through Steam’s own DLC system, not an in-app marketplace. First-party premium scenario-pack expansions (advanced professional skills, extended language courses, themed conversation bundles) are sold as Steam DLC — each its own Steam product with its own price and depot. Their content is authored in a separate private repository (ConversationSimulator-DLC) and never enters this public repo. The app checks DLC ownership through the Steamworks API and unlocks only the packs the player owns.

The four official packs stay free, and nothing that ships free is ever relocked as DLC. There is no in-app payment UI, no Steam Wallet microtransactions, and no third-party creator marketplace — community packs are still installed manually and distributed by their authors outside the app. A broader creator marketplace remains a post-launch research question (stage 5 of the release train); first-party DLC does not depend on it. See DLC_MODEL.md for the private-repo → Steam-DLC contract.


Work proceeds through the following stages. Each stage is a prerequisite for the next. Do not begin a stage until the prior stage’s acceptance criteria are met and its tracking issue is closed.

StageDescriptionEntry criterion
1. GitHub MVPOpen-source build reaches Milestone 1: stable text loop, voice I/O, workbench, official packs, offline smoke gate, full docs.All ROADMAP.md Milestone 1 items are checked off.
2. Packaged desktop alphaTauri desktop app bundles convsim-core as a sidecar. Single installer on Windows, macOS, Linux. No Steam involvement yet.GitHub MVP is tagged. Installer boots without CLI setup. Offline smoke test passes from the installed app.
3. Steam private betaApp is submitted to the Steam partner portal. Invited testers (developers, Outright Mental staff, select community members) validate the Steam overlay, controller navigation, and platform-specific quirks.Packaged desktop alpha passes internal QA on all three desktop platforms. Steam page draft is approved by Valve.
4. Public paid Steam release ($9.99)App is published as a $9.99 title on Steam. All four official packs are included free. Model Manager UI is stable. The first premium scenario-pack DLC may launch alongside or shortly after the base game.Steam private beta exit criteria are met. Code signing is in place on macOS and Windows. Steam Deck verification is complete (see Target platforms). Store pricing and (if launching) DLC configuration are approved by Valve.
5. Post-launch: creator marketplace explorationFirst-party premium DLC ships via Steam’s DLC system (stage 4 / ongoing). This stage evaluates only whether a third-party community-creator marketplace or pack browser is warranted on top of it. No decision has been made; this is a research milestone. See docs/marketplace-architecture.md for the entry gate criteria and design baseline.Public release has been live for at least 90 days. Community feedback and usage signals inform the evaluation. Entry gate from docs/marketplace-architecture.md must be satisfied before any implementation issue is opened.

The Steam edition targets the following platforms at public release. All four must pass the release smoke matrix (see docs/release-checklist.md) before the public release gate is opened.

PlatformTierNotes
Windows 10 / 11 (x86-64)RequiredPrimary target. NSIS installer. SmartScreen code signing required.
macOS 13+ (Apple Silicon and Intel)RequiredUniversal binary preferred. Gatekeeper notarisation required. .dmg installer.
Linux (x86-64, glibc)RequiredAppImage or Flatpak. Tested on Ubuntu 22.04 LTS and Fedora 40.
Steam Deck / SteamOS (x86-64)Required for public releaseVerified (not Playable) tier. Controller navigation must work in the main menu and model manager. Keyboard input must work in-game. Battery impact must be documented.

Steam Deck verification is a Valve process; meeting these criteria makes approval likely but Valve has final say.

  • The app launches in Gaming Mode without additional setup steps.
  • All menus are navigable with the Steam Deck controller (D-pad + A/B/X/Y, left stick, trackpad).
  • The on-screen keyboard appears automatically for any text-input field.
  • Text is readable at 1280×800 without zooming.
  • No required UI element is hidden behind a mouse-only interaction.
  • The offline smoke test passes under SteamOS 3.x.

This section expands the release principle into a specification that the model manager UI must satisfy before the packaged desktop alpha stage opens.

Required display before any download begins

Section titled “Required display before any download begins”
Model: Qwen3 4B Instruct (Q4_K_M)
Source: Hugging Face — Qwen/Qwen3-4B-GGUF
License: Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0)
Size: 2.6 GB
Checksum: SHA-256 — a3b1c2... (verified after download)
Destination: ~/.convsim/models/qwen3-4b-q4_k_m.gguf

All six fields are mandatory. A model entry that omits any field must not appear in the download UI.

After the file transfer completes, the model manager must:

  1. Compute the SHA-256 checksum of the downloaded file locally.
  2. Compare it against the value from the model registry.
  3. If the checksums match: mark the model as installed and available.
  4. If the checksums do not match: delete the partial file, display an error, and offer to retry. Never leave a failed download in place.

The model registry file (model-registry/) is the authoritative source of checksums. A new model entry must not be merged into the registry without a verified checksum from the original source.

A download is explicit if and only if the player (or developer, during setup) pressed a labelled Download button while the metadata panel described above was visible. Downloads triggered by:

  • App startup
  • Installer scripts
  • Background update checks
  • Silent fallbacks when a model is missing

…are not explicit and are not permitted in the Steam edition.


Steam-roadmap issues are sequenced. A downstream issue that depends on an upstream issue must not be started until the upstream issue is merged and closed. Enforcing this prevents work that assumes a foundation that does not yet exist.

Add a Prerequisites section to the issue body:

## Prerequisites
- Blocked by #NNN — [short description of what that issue delivers]

If an issue has no prerequisites, say so explicitly:

## Prerequisites
None. This is an unblocked issue.

Add a Blocked by line to the PR body if the PR should not be merged until another PR lands:

Blocked by #NNN

GitHub does not natively enforce merge order, so it is the author’s responsibility to check that upstream PRs are merged before asking for a review on a dependent PR.

MilestoneScope
Milestone 1GitHub MVP polish (screenshots, code signing groundwork, accessibility baseline)
Milestone 2Packaged desktop alpha (Tauri sidecar, auto-update, real-model CI, voice polish)
Milestone 3Steam private beta (Steam Deck verification, Steam overlay integration, beta tester program)
Milestone 4Public paid Steam release ($9.99) and first premium scenario-pack DLC
Milestone 5Post-launch (third-party creator marketplace exploration, community pack browser, analytics opt-in)

Assign every Steam-roadmap issue to one of these milestones. Issues without a milestone are considered unscoped and will be left in triage.


The following GitHub issues implement this roadmap in sequence. A downstream issue must not be started until the upstream issue is merged and closed.

TitleDocument deliveredStage dependency
[Steam Roadmap] Add Steam edition roadmap addendum and release principlesdocs/STEAM_ROADMAP.mdStage 1 prerequisite
[Steam Roadmap] Create Steam compliance and risk register for local-AI distributionpublishing/STEAM_COMPLIANCE_AND_RISK_REGISTER.mdStage 3 prerequisite
[Steam Roadmap] Define Steam MVP scope and release gatesdocs/steam-mvp-scope.mdStage 2 prerequisite
[Steam Roadmap] Add issue templates for Steam QA, platform bugs, and content-pack bugsdocs/steam-triage.mdStage 3 prerequisite
[Steamworks] Register Steam app, depots, packages, and $9.99 paid + DLC configurationpublishing/STEAM_APP_REGISTRATION.md, steam/, .github/workflows/steam-deploy.ymlStage 3 prerequisite (must be complete before first depot submission)
[Publishing] Write Steam publishing docs matching the FeverTilt patternpublishing/STEAM_STORE_AND_OPERATIONS.md, publishing/STEAM_PUBLISHING_AND_DEPLOYMENT.md, docs/STEAM_INTEGRATION.md, publishing/MACOS_SIGNING_AND_NOTARIZATION.md, publishing/WINDOWS_CODE_SIGNING.mdStage 3 prerequisite (operational clarity before private beta)
[Marketplace] Design future in-game content marketplace architecturedocs/marketplace-architecture.mdStage 5 design baseline (post-launch, not launch-blocking)
[Marketplace] Post-launch spike: validate creator marketplace demand and constraintsdocs/marketplace-demand-spike.mdStage 5 decision gate (complete at 90-day mark; required before any implementation issue is opened)

All open and closed issues in this work stream: GitHub — issues with [Steam Roadmap] prefix