Skip to content

Changelog ​

This unified documentation records the current Runtime workflow and earlier local-canon history. Products publish independently on GitHub Releases. Quality Platform remains private access; the Quality Harness role package is distributed with the other public role products.

0.1.0-alpha.49.2 ​

A security patch on top of 0.1.0-alpha.49.1 (release notes and security advisory). Update now: in 0.1.0-alpha.48 to alpha.49.1, a repository's Claude Code settings could approve Praxis's protected actions by themselves.

  • One approval channel: protected actions (commits, pushes, merge requests, Jira writes, writing .project, confirming Stories and decisions, recording review decisions) are approved only in the client's own dialog. A dialog answer is recorded as a client response (personVerified: false), never as proof that a person approved. See Approvals
  • Claude Desktop: in Chat, Cowork and the Code tab, protected actions are not executed. Claude shows the exact preview and says it was not applied; nobody is said to have rejected it. Reading, previews, reviews and the rest of the work keep working. Apply protected actions from the Claude Code CLI in a terminal, in the same repository
  • Review pages: Save is now Send for approval. It records nothing by itself; the client's dialog then shows exactly the decisions and remarks being recorded
  • Refused configuration: Praxis refuses protected actions when it sees an Elicitation hook that would answer the dialog, a client started with settings, plugins or agents on its command line, a client environment that points it at more configuration or loads code into it, or a repository whose own Claude Code settings do more than plain preferences. praxis_doctor names the file, flag or variable (Security model)
  • Removed: Trusted Client and host-permission modes, the planText argument (still accepted, ignored), and the Desktop extension's Approval mode setting
  • Doctor: approval.mode is client-ui or no-dialog; new approval.trust, approval.dialogAutomation and approval.ignoredEnvironment. New tool praxis_approval_journal (62 tools)
  • The Quality service refuses requests from web pages; praxis_approval_plan refuses a plan request for one repository that names another
  • Update: claude plugin marketplace update praxis, then claude plugin update for praxis and for each installed plugin (update). Desktop Chat: install the new praxis-runtime.mcpb
  • Verified with Claude Code CLI 2.1.314 against the published marketplace: a clean install, a single role with its Runtime, and the in-place update from alpha.49.1. Not verified: the Claude UI flow, the real Desktop Chat and Cowork interfaces, and a person answering the dialog

0.1.0-alpha.49.1 ​

A patch on top of 0.1.0-alpha.49 (release notes) with prototype improvements only:

  • Conversation prototypes: a chat, message feed or journal is prototyped as messages: outgoing on the right and incoming on the left, authors and avatars, times, day separators, attachments and a mock voice player. Filters, search, tabs and the record card work as on a table
  • Custom prototype parts: a pattern no element represents (a board, a calendar, a map-like layout) is written as HTML, CSS and script in a sandboxed frame. The frame has no network, no access to the review page and no navigation. The review page says that Praxis does not check its behaviour
  • Only what was asked changes: BA changes the element the user asked to change and keeps the rest of the screen. A requested pattern is never shown as a table, and what cannot be shown is said before the review
  • Offline review copies carry the same content security policy as the served page
  • Update: claude plugin marketplace update praxis, then claude plugin update for praxis and for each installed plugin; praxis@praxis alone does not update the Runtime and roles (update). Desktop Chat: install the new praxis-runtime.mcpb
  • Verified with Claude Code CLI 2.1.314 against the published marketplace: a clean install, each role alone, and the in-place update from alpha.49. Not verified: the Claude UI flow, Desktop Chat with this build, Desktop Code and Cowork

0.1.0-alpha.48 ​

  • Install from Claude: Customize → Plugins → Add marketplace → dfg-inc/praxis-marketplace → Praxis → Add. The praxis plugin installs Runtime, BA, Architect, Developer and Quality; a single role installs the Runtime with it. Claude Desktop Chat still uses the separate praxis-runtime.mcpb. See installation and client compatibility
  • Approvals: Action → Preview → Approval → Execute → Result. Approval Required (default: the client's dialog, or an immediate APPROVAL_CLIENT_UI_REQUIRED with the preview when the client has none) and the explicit opt-in Trusted Client mode (labelled trusted-client, never reported as your confirmation; it does not cover confirming Stories or decisions or approving a service). Trusted Client was removed in 0.1.0-alpha.49.2. See Approvals
  • APPROVAL_TIMED_OUT, approval.client evidence in praxis_doctor and a local diagnostics log (~/.praxis/diagnostics/mcp.jsonl); the decision journal lives outside the repository. See Diagnostics
  • Runtime reference: 52 tools (tools catalog); both MCP protocol eras handle approvals
  • Local-first: project init, BA, Architect, Developer and Quality workflows need no Jira (use Praxis)
  • New sections: Use Praxis (scenarios) and Technical
  • Update from earlier alphas: claude plugin marketplace update praxis, then claude plugin update praxis@praxis; for Desktop Chat install the new MCPB over the old one (update)
  • Not yet verified: the Claude UI flow, Desktop Chat with this build, Desktop Code and Cowork

0.1.0-alpha.45 – 0.1.0-alpha.47 ​

Summarised together because products release independently:

  • alpha.45: first public GitHub Releases under dfg-inc (Runtime MCPB and the four role ZIPs, each with release-meta.json)
  • A Jira-independent workflow contract for shared requirements and handoffs, user stories, and persisted local workflows (alpha.45–alpha.47)
  • Quality executes the implementation across repositories instead of trusting a caller-supplied behavior label; a service-level verdict is recorded beside each feature story verdict
  • The no-Jira workflow is proved through the MCP tools, including a defective import that must fail; numeric MCP arguments are validated
  • Every Praxis repository released at alpha.47

0.1.0-alpha.44 ​

  • Complete GitHub Delivery: local master publishes to GitHub main with an explicit refspec (<SHA>:refs/heads/main); empty UI-created repos are supported; remote master is not created
  • Feature commit stays on the Quality snapshot allowlist; hashes are re-read from the created Git commit
  • Pull Request base is published main, never local master; retries do not duplicate commits or PRs
  • CI PASS only for completed GitHub Actions success; missing workflows report not_configured
  • One copy-paste walkthrough: GitHub Delivery

0.1.0-alpha.43 ​

  • Connect Git updates origin when switching HTTPS ↔ SSH for the same GitHub repository (git remote set-url). Same repository identity is no longer treated as “already connected”
  • wrote=true only after the actual remote URL matches the approved plan; apply keeps the approved previewFingerprint
  • Git Status copies GitHub API empty onto remoteEmpty and baselineRequired; API failure stays unknown (null), not false
  • Doctor rejects a git remote pasted into github_api_url

0.1.0-alpha.42 ​

  • Developer Git Delivery: GitHub Pull Request MVP (status, connect, snapshot-bound commit, baseline/feature push, PR)
  • GitLab remotes and Merge Requests remain supported; GitHub live Desktop delivery is a separate manual gate
  • Git tokens use Runtime user_config (github_token, optional gitlab_token); never chat or .project

0.1.0-alpha.41 ​

  • Developer status reads canonical qualityState from praxis.state and the local WP manifest, not status=ready-for-qa
  • praxis.workPackageManifest is a membership/claim snapshot and does not override Quality approval
  • Read-only praxis_quality_apply_status and praxis_quality_review_show; Quality worker exit is recorded by the Runtime supervisor

0.1.0-alpha.40 ​

  • Quality Apply binds Jira status and the approved numeric transition in the preview fingerprint
  • Fresh Apply rejects Jira drift before the first write; retries resume from the apply journal
  • qualityState=approved is written only after the approved transition; MCP envelope ok follows data.ok

0.1.0-alpha.39 ​

  • Quality Review uses the bundled Quality HTTP Service, executes change-spec acceptance checks, and persists QA evidence / SQLite reviews
  • Review does not write Jira; Quality Apply Preview + human-gated Quality Apply perform Jira approval, Done, and Bugs
  • Local WP qualityState is reconciled on apply; retries are idempotent

0.1.0-alpha.38 ​

  • Quality starts inside the Claude Desktop Runtime when the Desktop executable is not a Node CLI (no user-installed Node)
  • Spawn failures wait for the real error/exit events instead of reporting only “did not return a pid”
  • Packaged sql.js WASM from alpha.37 remains the SQLite fallback

0.1.0-alpha.37 ​

  • Quality starts from the installed Runtime MCPB without a user-installed Node or SQLite
  • Desktop node:sqlite preflight no longer blocks ensure, and no longer maps every load error to “requires Node.js 22+”
  • Packaged sql.js WASM is the SQLite fallback when the Desktop child has no node:sqlite
  • Startup errors include stage, nodeVersion, nodeExecutable, moduleLoadErrorCode, exitCode, durationMs, logPath

0.1.0-alpha.36 ​

  • Quality HTTP service is bundled in the Runtime MCPB (server/praxis-quality.cjs)
  • praxis_quality_ensure actually starts the service, waits for health, and creates .praxis-quality/
  • Structured startup errors replace generic WORKFLOW_BLOCKED
  • User documentation is English-only (Marketplace method pages may still have a Russian locale)

0.1.0-alpha.35 ​

  • Developer complete no longer maps to Jira Done
  • Real verification evidence + Developer→Quality handoff
  • Human-gated recovery for premature Done
  • This documentation portal (VitePress) sharing Markdown with Marketplace

0.1.0-alpha.34 ​

  • Localized Jira transition discovery (numeric ids)
  • Defect: Developer complete could still mark Done — fixed in .35

0.1.0-alpha.33 ​

  • Hard Work Package scope; invalid title ---

0.1.0-alpha.32 ​

  • Preview performance / timeout budget

0.1.0-alpha.31 ​

  • Shared Runtime MCPB + secure user_config

0.1.0-alpha.30 ​

  • Official MCP stdio (serveStdio)

Earlier local-canon documentation ​

0.1.0-alpha.20 ​

  • English operator manual: installation surfaces, connected sessions, all 70 role skills, handoffs, CLI/Runtime reference, and recovery
  • Source-pinned provenance and public-boundary checks for every generated page

0.1.0-alpha.19 ​

  • Standalone BA and Developer export artifacts
  • Quality governance plus Developer and Architect package acceptance
  • Catalog versions aligned with the unified release

0.1.0 — Phase 1 pre-rollout ​

  • praxis-ba — canon-graph engine, handoff emit, rename complete
  • praxis-architect — build-architecture-package (requires --change-spec)
  • praxis-developer — run-work-package + final-arbiter + repair
  • Quality Platform — private merge controls and scheduled baseline evaluation
  • Catalog and documentation production build
  • Connected sample flow from BA to Quality evidence