Changelog¶
All notable changes to Mistaber are documented here.
Format based on Keep a Changelog, with a Formal Specification Changes section tracking modifications to the formal model and semantics.
This project adheres to Semantic Versioning.
[Unreleased]¶
[0.4.0] - 2026-02-07¶
Summary¶
Dashboard MVP milestone. The browser-based IDE at ide.mistaber.ai is live with full encoding workflow, ontology visualization, and Claude Code integration. Documentation moved to docs.mistaber.ai.
This release consolidates the v0.3.2–v0.3.4 work into a minor version bump reflecting the scope of changes: a complete web IDE, Docker deployment pipeline, CI/CD automation, and self-hosted documentation.
Added¶
- Documentation site deployed to
docs.mistaber.ai(moved from GitHub Pages) - MkDocs builds via GitHub Actions and rsyncs to droplet
- DNS, nginx, and Let's Encrypt SSL configured
- All CI checks passing (lint, format, type-check, tests across Python 3.10–3.12)
Changed¶
site_urlupdated frombrainyblaze.github.io/mistraber/todocs.mistaber.ai- Docs workflow deploys via SSH/rsync instead of
mkdocs gh-deploy - Deleted
gh-pagesbranch
Fixed¶
- 84 ruff lint errors (unused imports, import sorting, trailing whitespace)
- 62 files reformatted to pass ruff 0.15.0 format check
- 13 mypy type-check errors (stale type ignores, missing annotations)
- CI test job now installs dashboard backend dependencies
- Broken link in contributing docs (
CODE_OF_CONDUCT.md→code-of-conduct.md)
[0.3.4] - 2026-02-06¶
Added¶
- DigitalOcean droplet provisioning (
mistaber-ide, fra1, 4 vCPU / 8 GB) - DNS A record:
ide.mistaber.ai→ droplet IP - SSL/TLS via Let's Encrypt with automatic renewal (certbot)
- Host-level nginx reverse proxy with WebSocket support (24h timeout)
- UFW firewall (SSH + Nginx only)
- GitHub Actions CI/CD pipeline (
.github/workflows/deploy.yml) - Automatic deployment on push to
main(path-filtered) - Manual deployment via
workflow_dispatch - SCP-based
.envupload from GitHub Secrets - SSH-based
docker compose up --buildwith health check - Concurrency control (single deploy at a time)
- Startup cleanup of orphaned sessions (worktree path validation)
- Frontend stale session state clearing on reload
Changed¶
- Removed tmux from terminal architecture — direct shell mode (
USE_TMUX=0) - Fixes mouse/keyboard input conflicts between tmux and xterm.js
- Claude CLI sessions spawn directly via PTY
- Docker Compose frontend port changed from
80:80to3000:80(host nginx uses port 80) - MCP servers configured with
--scope userfor global availability across worktrees - Entrypoint installs mistaber-skills plugin from local marketplace
Fixed¶
- Terminal scroll and input broken when tmux mouse mode enabled
- Claude CLI not auto-launching in terminal sessions (direct shell mode)
- Shell crashing when worktree path doesn't exist (fallback to
/app) - MCP servers not available in worktree-based Claude sessions
- Stale
activeSessionIdin localStorage causing phantom terminal connections
[0.3.3] - 2026-02-05¶
Added¶
- Docker deployment for DigitalOcean droplet with managed Postgres
- Multi-stage frontend Dockerfile (Node build → Nginx reverse proxy)
- Backend Dockerfile with full encoding toolchain (clingo, asprin, xclingo, tmux, Claude Code CLI)
- Docker Compose orchestration (frontend + backend, external managed DB)
- Nginx reverse proxy for GraphQL, WebSocket, REST API, and SPA fallback
- Entrypoint with Claude Code shared subscription auth (
claude setup-token) - Alembic migrations run automatically at container startup
- Environment-driven configuration
DATABASE_URLwith automatic scheme normalization (postgresql → asyncpg)CORS_ORIGINSfor configurable CORS policyJWT_SECRET_KEYfor production token signingCLAUDE_TOKENfor shared Claude Code subscription.env.exampletemplate for deployment configuration
Fixed¶
- DateTime columns now use
timezone=Truefor Postgres compatibility - Frontend URLs derive from
window.location.origininstead of hardcoded localhost - WebSocket terminal connects through nginx proxy in containerized deployments
- File explorer and tests panel resolve
REPO_ROOTviaMISTABER_ONTOLOGYenv var in Docker - Makefile
devtarget points to correctbackend/path and port 8001
[0.3.2] - 2026-02-05¶
Added¶
- Mistaber Dashboard IDE — browser-based encoding workbench at ide.mistaber.ai
- VS Code-like layout with Activity Bar, resizable panels, and tabbed editor
- Session management with 5-phase workflow tracking and phase timeline
- Ontology visualizer — interactive force-directed graph (D3.js) with domain filtering, search, hover highlighting, and SVG export
- Coverage dashboard with seif-level heatmap, quality metrics, and 30-day activity timeline
- Integrated terminal backed by tmux — per-session worktrees, Claude Code agent, persistent across refreshes
- Query executor for running ASP queries with results display
- Four validation views: Proof (derivation tree), Narrative, Side-by-Side, and Diff
- Monaco code editor with Clingo/LP syntax highlighting
- Command palette (Ctrl+K) and keyboard shortcuts for fast navigation
- GraphQL API (Strawberry/FastAPI) with 20+ query fields and real-time subscriptions
- SQLAlchemy database for session state, checkpoints, source chains, and notes
- JWT authentication
- Standalone dashboard user guide for encoders (16 documentation files at
docs/dashboard/) - Sessions, ontology, encoding, coverage, tools, and UI glossary walkthroughs
- Written for halachic scholars, not developers
[0.3.1] - 2026-01-25¶
Added¶
- mistaber-skills Claude Code plugin for AI-assisted halacha encoding
- 5-phase encoding workflow: Corpus Prep → HLL Encode → Validate → Review → Commit
- Human supervision checkpoints at every phase transition
- Sefaria MCP integration for text corpora access
- Skills:
corpus-prep- Fetch and analyze sources from Sefaria, build derivation chainshll-encode- Transform halachic statements to formal HLL rulesvalidate- ASP compilation, behavioral tests, semantic validationreview- Generate review packages for human approvalcommit- Archive session artifacts and finalize commits
- Hooks:
session-init- Initialize encoding session statephase-gate- Enforce phase transition requirementsencoding-guard- Validate HLL syntax before writessefaria-logger- Log all Sefaria API interactionsvalidation-handler- Run validation on encoding changescheckpoint-enforcement- Require human approval at checkpointsgit-commit-guard- Enforce commit message conventions
- Agents:
encoding-orchestrator- Multi-seif encoding coordination
- Comprehensive documentation site with MkDocs Material
- Navigation tabs for top-level sections
- Encoding tutorials and guidelines
- Plugin documentation with skills, hooks, and agents reference
- Formal foundations (modal logic, deontic logic, Kripke semantics)
[0.3.0] - 2026-01-21¶
Added¶
- Apache 2.0 open source license
pyproject.tomlfor modern Python packagingCONTRIBUTING.mdwith development setup guideCODE_OF_CONDUCT.md(community standards)- GitHub Actions CI workflow (lint, type-check, test)
- GitHub issue and PR templates
Changed¶
- Renamed package from
coretomistaberfor PyPI distribution - CLI command changed from
hsrstomistaber - Updated all documentation with new package name and paths
Fixed¶
- Float positioning for all tables and figures in paper
[0.2.0] - 2026-01-19¶
Added¶
- Complete 7-world Kripke DAG with 3-tier inheritance hierarchy
- Tier 1:
base(common halachic ground) - Tier 2:
mechaber,rema,gra(primary authorities) - Tier 3:
ashk_mb,ashk_ah,sefardi_yo(modern authorities) - Shach and Taz interpretation layers with formal modification predicates
adds_condition/3- adds preconditions to rulesremoves_condition/3- removes conditions from rulesexpands_scope/3- extends rule applicability- Engine API methods:
configure()- runtime configuration for world, safek policy, interpretation precedenceask()- boolean queries with policy-aware resolutionquery_with_completeness()- OWA-aware queries with missing fact detectionquery_preferred()- asprin-based preference optimization- CLI commands:
query- query for atoms matching a patterncompare- compare query results across multiple worldsanalyze- analyze a scenario (push mode)explain- generate derivation tree explanationsmachloket- detect disputes between authorities- Completeness checking with
MissingFactdetection for OWA predicates - XClingo-based explanation engine with derivation tree generation
- Kripke validation module for world graph integrity checks
- Production-grade safek calculus with:
safek/5propagation through derivation chainssfek_sfeika/4double-doubt handling- World-level
safek_policy/3configuration - Machloket detection module for cross-world dispute analysis
- YD 87 (basar bechalav) corpus with complete ruling encodings
Changed¶
- Engine initialization now loads interpretation layer rules automatically
- World files include corpus imports via
#includedirectives - Safek resolution respects world-specific policies
Formal Specification Changes¶
- Kripke Frame Properties:
- Non-reflexive:
not (w R w)for all worlds - Transitive:
accessible_transitive/2computed via closure -
Antisymmetric: no cycles in world DAG (except via base)
-
Truth Propagation Semantics:
-
Override Mechanism:
-
Interpretation Layer Predicates:
adds_condition(Commentator, RuleID, Condition)- rule fires only if Condition holdsremoves_condition(Commentator, RuleID, Condition)- condition no longer required-
expands_scope(Commentator, RuleID, Extension)- extends rule applicability -
Interpretation Precedence:
- Configured via
interpretation_precedencelist inEngineConfig - Higher index in list wins on conflict
-
Default:
["shach", "taz"] -
Safek Policies:
- World-level:
safek_policy(W, MadregaLevel, Resolution) - Resolution values:
l_chumra(stringent),l_kula(lenient) -
Default:
safek_policy(base, d_oraita, l_chumra),safek_policy(base, d_rabanan, l_kula) -
Madrega Ordering (unchanged from 0.1.0):
Fixed¶
- Proper inheritance of safek policies through world DAG
- Override semantics correctly block inherited propositions
- Interpretation modifications correctly compose with base rules
[0.1.0] - 2026-01-15¶
Added¶
- HLL (Halachic Logic Language) compiler pipeline
- Lark-based parser with custom grammar
- Normalizer for surface syntax expansion
- Type checker with predicate registry validation
- ASP code emitter
- Predicate registry specification
- 69 predicates across multiple domains
- 29 sorts (types)
- 12 enumeration categories
- CWA/OWA classification per predicate
- Base ontology schema
sorts.lp- sort declarationsconstraints.lp- integrity constraintsdisjointness.lp- mutual exclusivity rules- Base ontology files
substance.lp- food and material propertiesmadrega.lp- normative level hierarchyissur_types.lp- prohibition categoriesstatus.lp- status modalitiesshiur.lp- halachic measurementstemporal.lp- time-based reasoningcontext.lp- normative contexts- DSL builtins
temporal.lp- time predicatesmeasures.lp- measurement predicatesbitul.lp- nullification rules- Initial world files
base.lp- common groundmechaber.lp- Shulchan Aruch author (Sefardi)rema.lp- Ashkenazi glosses
Formal Specification Changes¶
- Initial Formal Model Established:
- Kripke frame
<W, R>where W = set of worlds, R = accessibility relation world/1declares world membership-
accessible/2declares accessibility (inheritance) relation -
Sort System:
- Two primary domains: Physical, Normative
- Physical:
food,mixture,vessel,time_point - Normative:
action,issur_type,madrega,context -
Subsort relations encoded in schema
-
CWA/OWA Classification:
- CWA predicates:
is_food/1,food_type/2,mixture/1,contains/2 -
OWA predicates:
forbidden/4,permitted/4,safek/5 -
Madrega Ordering:
- Total order:
d_oraita > d_rabanan > minhag > chumra - Encoded via
stronger/2predicate -
Transitive closure:
stronger_transitive/2 -
Context Hierarchy:
ctx_normal(default, most strict)ctx_hefsed(financial loss)ctx_shaat_hadchak(pressing circumstances, most lenient)-
Monotonic leniency: permitted in strict context -> permitted in lenient
-
Source Attribution Requirement:
- All normative rules require
@makordirective - Encodes source citations as
makor(RuleID, Source)facts - Source types:
sa/1,rambam/1,tur/1,gemara/1,rema/1,taz/1,shach/1
Version History Summary¶
| Version | Date | Highlights |
|---|---|---|
| 0.4.0 | 2026-02-07 | Dashboard MVP milestone — IDE live, docs site, all CI green |
| 0.3.4 | 2026-02-06 | DigitalOcean deployment, SSL, CI/CD pipeline, terminal fixes |
| 0.3.3 | 2026-02-05 | Docker containerization, managed Postgres, environment config |
| 0.3.2 | 2026-02-05 | Dashboard IDE, ontology visualizer, coverage heatmap, user guide |
| 0.3.1 | 2026-01-25 | mistaber-skills Claude Code plugin, documentation site |
| 0.3.0 | 2026-01-21 | OSS release, Apache 2.0, pyproject.toml, CI/CD |
| 0.2.0 | 2026-01-19 | Kripke gaps, interpretation layer, CLI, 7 worlds |
| 0.1.0 | 2026-01-15 | HLL compiler, predicate registry, base ontology |