Skip to main content

Vinyasar 0.2.1

A bounded policy-driven supervisor for Yasarda, not an autonomous code writer. It has one mutating playbook: recover an interrupted Yasarda transaction to its original file state. Recovery does not finish applying the interrupted patch.

The same Controller serves Python SDK, CLI and MCP. Models can propose changes, but cannot create playbooks, change pinned roots or grant authority through MCP.

Install

Install the supplied Yasarda 0.3.1 and Vinyasar 0.2.1 wheels into a dedicated virtual environment. This delivery is local; it has not been published to PyPI.

python -m pip install ./yasarda-0.3.1-py3-none-any.whl ./vinyasar-0.2.0-py3-none-any.whl
vinyasar --version
vinyasar validate /private/profile.json
vinyasar inspect /private/profile.json --trigger-id review-001

CLI inspect produces a dry-run record in the configured state/report storage; it does not repair the target. MCP inspect_target only inspects, without writing reports. Review the profile's authority before invoking vinyasar run: a generated profile can enable automatic recovery when setup checks consider storage eligible.

vinyasar run /private/profile.json --trigger manual --trigger-id event-001
vinyasar-mcp --config /private/profile.json

Reusing the same trigger replays the same run. Use a new trigger for a new health check. All cooperating processes must share the same canonical state roots.

Changed in this version

Fresh verification requires complete detector coverage and an exact rolled-back receipt. Recovery preflights file counts and byte limits in Yasarda itself. Durable run intent precedes attempt reservation; reserved uncertain actions are not blindly reissued after a crash. Whole-target locks serialize local workers.

Retry budgets survive cosmetic profile edits. Report storage is checked before actions. Canonical reports are staged, fsynced and published without replacement, with recovery for recognized staging/link crash windows. Report schema v2 adds record integrity, final issues, inspection completeness and deadline status. Diagnostics are bounded/redacted before durable serialization. Failed MCP reconciliation returns isError=true; replay serialization is deterministic.

Upgrades and limits

Read docs/UPGRADE.md before replacing a running installation. V1 reports are historical only. Legacy ledgers require host-only explicit adoption. Original Yasarda 0.2.0 journals require matching-engine recovery first.

Linux/Python 3.13.5 was exercised for this iteration. Local POSIX mutation only; no Windows mutation, macOS validation, distributed lock or same-user sandbox is claimed. Timing is a cooperative deadline, not preemption of blocking filesystem calls. Redaction is bounded allowlisting, not universal secret detection.

No scheduler installation, AST repair, network exporter, shell playbook, MCP Tasks or A2A adapter was added. Builds and application performance require their own independently authorized workers and evidence. See SAFETY.md for the boundary.

Host initialization and pinned paths (0.2.1)

vinyasar init is the explicit host setup boundary. It resolves supplied path aliases once and writes canonical absolute repository, Yasarda-state, Vinyasar-state and report paths into a new profile. This includes home and YASARDA_STATE_DIR defaults. Missing state directories are not created; the nearest existing prefix is resolved strictly so dangling links and loops are refused. The profile output parent must already exist and be private. Its final component is never followed if linked and existing files are never overwritten.

Loading an existing profile does not canonicalize links away. Both the profile file path and its configured paths must be link-free; relative configured entries remain compatible and are interpreted relative to the canonical profile parent. A linked /var/... source profile must be supplied explicitly as its canonical /private/var/... path. YAML uses the same bounded regular-file loader.

vinyasar doctor paths PROFILE (or vinyasar.doctor_paths(PROFILE)) reports supplied and canonical path names, missing locations, and private-directory permission issues as JSON. It writes nothing, does not instantiate Controller, and never changes modes or follows a linked profile to read it. Exit 0 means these path and configuration checks passed; exit 2 reports a problem. The diagnostic explicitly sets mutation_authorized: false and storage_eligibility: not_assessed. It is not a sandbox, lock, filesystem certification, or approval to repair.

Python path semantics reference: https://docs.python.org/3.13/library/pathlib.html (Path.resolve(strict=True), strict loop and missing-path handling). Descriptor read guards reference: https://docs.python.org/3/library/os.html (dir_fd, O_NOFOLLOW, O_NONBLOCK, fstat). Runtime mutation/storage guards are unchanged.

Release files for vinyasar 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vinyasar 0.3.1
File Size Uploaded
vinyasar-0.3.1.tar.gz 146.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vinyasar 0.3.1
File Interpreter ABI Platform
vinyasar-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 226.5 kB

Release files / vinyasar-0.3.1.tar.gz

Download URL vinyasar-0.3.1.tar.gz
Size 146.3 kB
Tags Source
SHA-256 checksum
How to use checksums
078a4816988ded0195266689a5e876bd351874198fd6b889b544a5952f3643e9
BLAKE2b-256 checksum
How to use checksums
151d5706667f36694b3bc56969bf864c7cba0db8a192896c27a908ab993a54fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.11

Release files / vinyasar-0.3.1-py3-none-any.whl

Download URL vinyasar-0.3.1-py3-none-any.whl
Size 80.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e1fbaaefb06876b38e63d0bcdbc0131ab10a966e66226c865bfc8d4ce0ffb8a1
BLAKE2b-256 checksum
How to use checksums
b917d75f4870766ee18730a2203756953854044f7073e23ae93e8244c535991c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page