assign_solver="cpsat" gave a different leaf-type signature on every run from an identical seed, in the same process. One line: assignable = scope if scope is not None else set(leaves) noncirc = [L for L in assignable if L not in circ] # id() order assignable is a set of dom.Node, and Node hashes by id() -- a memory address -- so iterating it ordered noncirc, and hence room_slots, by where the objects happened to land in memory. That shifts between calls within one process as allocation patterns change, with no seed involved. Only cpsat showed it. The greedy path re-sorts every slot list with -idx[L] as a unique tiebreak and is immune to the incoming order; CP-SAT consumes room_slots order as its model's variable order, and the labelling problem has many equally-optimal solutions. Greedy was not more correct, it was masking a defect that had been there all along. Fix: iterate the tree-ordered list, use the set only for membership. Verified on programme-house, harbor-house and maple-court: 1 distinct signature over 5 runs on both solvers, and 1 across 4 processes started with different PYTHONHASHSEED, so context_types' string sets are not a second source. test_constructive_topology_is_bit_reproducible guards both. Method: rather than guess which set was at fault, instrument solve_room_labels with an id-free fingerprint of inputs and outputs and isolate the FIRST call, since later calls legitimately depend on earlier ones through leaf types. Five runs gave five distinct first-call inputs, placing the fault upstream of the solver in one step. Every A/B on the cpsat path was comparing arms that differed partly by memory layout -- 39.5's cpsat-vs-greedy verdict included, already down for re-measurement under homemaker-py-vjd. Same id()-keying hazard as the documented geometry._cache issue and a plausible contributor to homemaker-py-b8g, which stays open: n_workers>1 has its own BLAS mechanism and is not addressed here. Closes homemaker-py-fdp. Lint at parity (46); tests 381 passed (2 new), 0 failed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MJ84Feep79Hhm3E4zZJmnB |
||
|---|---|---|
| .. | ||
| hooks | ||
| .gitignore | ||
| config.yaml | ||
| issues.jsonl | ||
| metadata.json | ||
| README.md | ||
Beads - AI-Native Issue Tracking
Welcome to Beads! This repository uses Beads for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.
What is Beads?
Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
Learn more: github.com/steveyegge/beads
Quick Start
Essential Commands
# Create new issues
bd create "Add user authentication"
# View all issues
bd list
# View issue details
bd show <issue-id>
# Update issue status
bd update <issue-id> --claim
bd update <issue-id> --status done
# Sync with Dolt remote
bd dolt push
Working with Issues
Issues in Beads are:
- Git-native: Stored in Dolt database with version control and branching
- AI-friendly: CLI-first design works perfectly with AI coding agents
- Branch-aware: Issues can follow your branch workflow
- Always in sync: Auto-syncs with your commits
Why Beads?
✨ AI-Native Design
- Built specifically for AI-assisted development workflows
- CLI-first interface works seamlessly with AI coding agents
- No context switching to web UIs
🚀 Developer Focused
- Issues live in your repo, right next to your code
- Works offline, syncs when you push
- Fast, lightweight, and stays out of your way
🔧 Git Integration
- Automatic sync with git commits
- Branch-aware issue tracking
- Dolt-native three-way merge resolution
Get Started with Beads
Try Beads in your own projects:
# Install Beads
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
# Initialize in your repo
bd init
# Create your first issue
bd create "Try out Beads"
Learn More
- Documentation: github.com/steveyegge/beads/docs
- Quick Start Guide: Run
bd quickstart - Examples: github.com/steveyegge/beads/examples
Beads: Issue tracking that moves at the speed of thought ⚡