refactor: things

This commit is contained in:
2026-03-06 17:17:59 +08:00
parent 8c6087683f
commit 33ab1a5d9d
171 changed files with 293 additions and 29894 deletions
-45
View File
@@ -1,45 +0,0 @@
# SQLite databases
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm
# Daemon runtime files
daemon.lock
daemon.log
daemon.pid
bd.sock
sync-state.json
last-touched
# Local version tracking (prevents upgrade notification spam after git ops)
.local_version
# Legacy database files
db.sqlite
bd.db
# Worktree redirect file (contains relative path to main repo's .beads/)
# Must not be committed as paths would be wrong in other clones
redirect
# Merge artifacts (temporary files from 3-way merge)
beads.base.jsonl
beads.base.meta.json
beads.left.jsonl
beads.left.meta.json
beads.right.jsonl
beads.right.meta.json
# Sync state (local-only, per-machine)
# These files are machine-specific and should not be shared across clones
.sync.lock
sync_base.jsonl
export-state/
# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here.
# They would override fork protection in .git/info/exclude, allowing
# contributors to accidentally commit upstream issue databases.
# The JSONL files (issues.jsonl, interactions.jsonl) and config files
# are tracked by git by default since no pattern above ignores them.
-81
View File
@@ -1,81 +0,0 @@
# 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](https://github.com/steveyegge/beads)
## Quick Start
### Essential Commands
```bash
# 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> --status in_progress
bd update <issue-id> --status done
# Sync with git remote
bd sync
```
### Working with Issues
Issues in Beads are:
- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
- **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
- Intelligent JSONL merge resolution
## Get Started with Beads
Try Beads in your own projects:
```bash
# 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](https://github.com/steveyegge/beads/tree/main/docs)
- **Quick Start Guide**: Run `bd quickstart`
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
---
*Beads: Issue tracking that moves at the speed of thought*
-67
View File
@@ -1,67 +0,0 @@
# Beads Configuration File
# This file configures default behavior for all bd commands in this repository
# All settings can also be set via environment variables (BD_* prefix)
# or overridden with command-line flags
# Issue prefix for this repository (used by bd init)
# If not set, bd init will auto-detect from directory name
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
# issue-prefix: ""
# Use no-db mode: load from JSONL, no SQLite, write back after each command
# When true, bd will use .beads/issues.jsonl as the source of truth
# instead of SQLite database
# no-db: false
# Disable daemon for RPC communication (forces direct database access)
# no-daemon: false
# Disable auto-flush of database to JSONL after mutations
# no-auto-flush: false
# Disable auto-import from JSONL when it's newer than database
# no-auto-import: false
# Enable JSON output by default
# json: false
# Default actor for audit trails (overridden by BD_ACTOR or --actor)
# actor: ""
# Path to database (overridden by BEADS_DB or --db)
# db: ""
# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
# auto-start-daemon: true
# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
# flush-debounce: "5s"
# Export events (audit trail) to .beads/events.jsonl on each flush/sync
# When enabled, new events are appended incrementally using a high-water mark.
# Use 'bd export --events' to trigger manually regardless of this setting.
# events-export: false
# Git branch for beads commits (bd sync will commit to this branch)
# IMPORTANT: Set this for team projects so all clones use the same sync branch.
# This setting persists across clones (unlike database config which is gitignored).
# Can also use BEADS_SYNC_BRANCH env var for local override.
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
# sync-branch: "beads-sync"
# Multi-repo configuration (experimental - bd-307)
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
# repos:
# primary: "." # Primary repo (where this database lives)
# additional: # Additional repos to hydrate from (read-only)
# - ~/beads-planning # Personal planning repo
# - ~/work-planning # Work planning repo
# Integration settings (access with 'bd config get/set')
# These are stored in the database, not in this file:
# - jira.url
# - jira.project
# - linear.url
# - linear.api-key
# - github.org
# - github.repo
View File
-52
View File
@@ -1,52 +0,0 @@
{"id":"py_workspace-0mu","title":"Implement --render-space in visualize_extrinsics.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T16:08:12.543309499Z","created_by":"crosstyan","updated_at":"2026-02-07T16:08:17.303232927Z","closed_at":"2026-02-07T16:08:17.303232927Z","close_reason":"Implemented --render-space with opencv/opengl choices and updated README"}
{"id":"py_workspace-0q7","title":"Fix basedpyright errors in aruco/pose_averaging.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T08:53:33.377735199Z","created_by":"crosstyan","updated_at":"2026-02-07T08:58:49.252312392Z","closed_at":"2026-02-07T08:58:49.252312392Z","close_reason":"Fixed basedpyright errors"}
{"id":"py_workspace-185","title":"Update visualization conventions docs for compare_pose_sets","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T03:17:36.550951981Z","created_by":"crosstyan","updated_at":"2026-02-09T03:17:42.680340444Z","closed_at":"2026-02-09T03:17:42.680340444Z","close_reason":"Added documentation for compare_pose_sets.py input formats to docs/visualization-conventions.md"}
{"id":"py_workspace-214","title":"Migrate visualize_extrinsics to Plotly with diagnose mode","status":"closed","priority":2,"issue_type":"feature","owner":"crosstyan@outlook.com","created_at":"2026-02-07T15:14:40.547616056Z","created_by":"crosstyan","updated_at":"2026-02-07T15:25:00.354290874Z","closed_at":"2026-02-07T15:25:00.354290874Z","close_reason":"Fixed QA issues: Y-up enforcement, README sync, dependencies"}
{"id":"py_workspace-291","title":"Create camera pose comparison script","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-08T07:51:14.710189364Z","created_by":"crosstyan","updated_at":"2026-02-08T07:53:52.647760731Z","closed_at":"2026-02-08T07:53:52.647760731Z","close_reason":"Implemented compare_pose_sets.py script and verified with provided command."}
{"id":"py_workspace-2c1","title":"Add manual ground-plane overlay to visualize_extrinsics.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T16:15:17.432846006Z","created_by":"crosstyan","updated_at":"2026-02-07T16:16:18.287496896Z","closed_at":"2026-02-07T16:16:18.287496896Z","close_reason":"Implemented ground-plane overlay with CLI options and updated README."}
{"id":"py_workspace-49i","title":"Add explicit validation for 4x4 transformation matrices in compare_pose_sets.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T03:22:47.591167295Z","created_by":"crosstyan","updated_at":"2026-02-09T03:23:53.008806228Z","closed_at":"2026-02-09T03:23:53.008806228Z","close_reason":"Added explicit validation for 4x4 transformation matrices in parse_pose() with context-aware error messages. Verified with existing data."}
{"id":"py_workspace-4o7","title":"Implement ground_plane.py for floor detection and alignment","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T06:58:07.905247984Z","created_by":"crosstyan","updated_at":"2026-02-09T07:04:51.276602825Z","closed_at":"2026-02-09T07:04:51.276602825Z","close_reason":"Implemented ground_plane.py with core primitives and tests"}
{"id":"py_workspace-62y","title":"Fix depth pooling fallback threshold","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T08:12:12.046607198Z","created_by":"crosstyan","updated_at":"2026-02-07T08:13:12.98625698Z","closed_at":"2026-02-07T08:13:12.98625698Z","close_reason":"Updated fallback threshold to strict comparison"}
{"id":"py_workspace-6m5","title":"Robust Optimizer Implementation","status":"closed","priority":0,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T05:22:45.183574374Z","created_by":"crosstyan","updated_at":"2026-02-07T05:22:53.151871639Z","closed_at":"2026-02-07T05:22:53.151871639Z","close_reason":"Implemented robust optimizer with least_squares and soft_l1 loss, updated tests"}
{"id":"py_workspace-6o5","title":"Implement refine_ground_plane.py CLI","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T07:44:20.718900027Z","created_by":"crosstyan","updated_at":"2026-02-09T07:49:44.022114568Z","closed_at":"2026-02-09T07:49:44.022114568Z","close_reason":"Implemented refine_ground_plane.py CLI and tests"}
{"id":"py_workspace-6sg","title":"Document marker parquet structure","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T02:48:08.95742431Z","created_by":"crosstyan","updated_at":"2026-02-07T02:49:35.897152691Z","closed_at":"2026-02-07T02:49:35.897152691Z","close_reason":"Documented parquet structure in aruco/markers/PARQUET_FORMAT.md"}
{"id":"py_workspace-6zc","title":"Implement ground plane orchestration","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T07:26:38.678128415Z","created_by":"crosstyan","updated_at":"2026-02-09T07:38:47.610828242Z","closed_at":"2026-02-09T07:38:47.610828242Z","close_reason":"Implemented per-camera ground plane correction"}
{"id":"py_workspace-7ul","title":"Implement global world-basis conversion for Plotly visualization","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T17:30:41.94482545Z","created_by":"crosstyan","updated_at":"2026-02-07T17:38:39.56245337Z","closed_at":"2026-02-07T17:38:39.56245337Z","close_reason":"Implemented global world-basis conversion"}
{"id":"py_workspace-8rq","title":"Harden ground plane algorithm","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T08:39:37.627167354Z","created_by":"crosstyan","updated_at":"2026-02-09T08:45:37.953824041Z","closed_at":"2026-02-09T08:45:37.953824041Z","close_reason":"Implemented robust ground plane algorithm with normal filtering, median consensus, and deviation checks"}
{"id":"py_workspace-98p","title":"Integrate multi-frame depth pooling into calibrate_extrinsics.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T07:59:35.333468652Z","created_by":"crosstyan","updated_at":"2026-02-07T08:06:37.662956356Z","closed_at":"2026-02-07T08:06:37.662956356Z","close_reason":"Implemented multi-frame depth pooling and verified with tests"}
{"id":"py_workspace-9be","title":"Complete ground_plane.py implementation and testing","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T07:15:03.553485145Z","created_by":"crosstyan","updated_at":"2026-02-09T07:17:45.013580044Z","closed_at":"2026-02-09T07:17:45.013580044Z","close_reason":"Completed ground_plane.py implementation and testing with full coverage"}
{"id":"py_workspace-a85","title":"Add CLI option for ArUco dictionary in calibrate_extrinsics.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-06T10:13:41.896728814Z","created_by":"crosstyan","updated_at":"2026-02-07T07:29:52.290976525Z","closed_at":"2026-02-07T07:29:52.290976525Z","close_reason":"Implemented multi-frame depth pooling in calibrate_extrinsics.py"}
{"id":"py_workspace-afh","title":"Inspect tmp_visualizer.html camera layout","notes":"Inspected tmp_visualizer.html. cam_0 is at (0,0,0). cam_1 is at (1,0,0). cam_2 is at (0, 0.5, 1.0). Axes are RGB=XYZ. Layout matches expected synthetic geometry.","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T15:40:04.162565539Z","created_by":"crosstyan","updated_at":"2026-02-07T15:42:10.721124074Z","closed_at":"2026-02-07T15:42:10.721124074Z","close_reason":"Inspection complete. Layout matches synthetic input."}
{"id":"py_workspace-aif","title":"Update visualization conventions documentation","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T04:20:14.893831963Z","created_by":"crosstyan","updated_at":"2026-02-09T04:22:07.154821825Z","closed_at":"2026-02-09T04:22:07.154821825Z","close_reason":"Updated documentation with current policy checklist, metadata details, and known pitfalls"}
{"id":"py_workspace-cg4","title":"Implement geometry-first auto-align heuristic","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T16:48:33.048250646Z","created_by":"crosstyan","updated_at":"2026-02-07T16:53:54.772815505Z","closed_at":"2026-02-07T16:53:54.772815505Z","close_reason":"Closed"}
{"id":"py_workspace-cg9","title":"Implement core alignment utilities (Task 1)","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-06T10:40:36.296030875Z","created_by":"crosstyan","updated_at":"2026-02-06T10:40:46.196825039Z","closed_at":"2026-02-06T10:40:46.196825039Z","close_reason":"Implemented compute_face_normal, rotation_align_vectors, and apply_alignment_to_pose in aruco/alignment.py"}
{"id":"py_workspace-e09","title":"Implement aruco/depth_save.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T06:58:01.987010195Z","created_by":"crosstyan","updated_at":"2026-02-09T07:17:05.33050495Z","closed_at":"2026-02-09T07:17:05.33050495Z","close_reason":"Implemented depth_save.py with HDF5 persistence and passed tests/type checks"}
{"id":"py_workspace-ecz","title":"Update visualization conventions docs with alignment details","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-08T07:47:49.633647436Z","created_by":"crosstyan","updated_at":"2026-02-08T07:48:25.728323257Z","closed_at":"2026-02-08T07:48:25.728323257Z","close_reason":"Added alignment methodology section to docs"}
{"id":"py_workspace-ee1","title":"Implement depth-mode argument resolution in calibrate_extrinsics.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T06:31:03.430147225Z","created_by":"crosstyan","updated_at":"2026-02-07T06:33:43.204825053Z","closed_at":"2026-02-07T06:33:43.204825053Z","close_reason":"Implemented depth-mode argument resolution logic and verified with multiple test cases."}
{"id":"py_workspace-f23","title":"Add --origin-axes-scale option to visualize_extrinsics.py","status":"closed","priority":2,"issue_type":"feature","owner":"crosstyan@outlook.com","created_at":"2026-02-08T05:37:35.228917793Z","created_by":"crosstyan","updated_at":"2026-02-08T05:38:31.173898101Z","closed_at":"2026-02-08T05:38:31.173898101Z","close_reason":"Implemented --origin-axes-scale option and verified with rendering."}
{"id":"py_workspace-gii","title":"Implement Y-down auto-align and add metadata to extrinsics output","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T04:10:40.0580733Z","created_by":"crosstyan","updated_at":"2026-02-09T04:11:31.853050842Z","closed_at":"2026-02-09T04:11:31.853050842Z","close_reason":"Implemented Y-down auto-align and added metadata to extrinsics output JSON."}
{"id":"py_workspace-gv2","title":"Create apply_calibration_to_fusion_config.py script","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T03:20:08.635031083Z","created_by":"crosstyan","updated_at":"2026-02-09T03:21:20.005139771Z","closed_at":"2026-02-09T03:21:20.005139771Z","close_reason":"Script created and verified with smoke test and type checking."}
{"id":"py_workspace-hnw","title":"Integrate --save-depth flag into calibrate_extrinsics.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T07:21:32.541956991Z","created_by":"crosstyan","updated_at":"2026-02-09T07:25:26.398780574Z","closed_at":"2026-02-09T07:25:26.398780574Z","close_reason":"Implemented --save-depth flag and integration tests"}
{"id":"py_workspace-i5y","title":"Remove --metrics-json from refine_ground_plane.py","description":"Remove the --metrics-json flag from refine_ground_plane.py and make _meta.ground_refined the only metrics sink. Update tests and documentation accordingly.","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T09:56:47.71058499Z","created_by":"crosstyan","updated_at":"2026-02-09T09:58:12.546776193Z","closed_at":"2026-02-09T09:58:12.546776193Z","close_reason":"Removed --metrics-json flag from refine_ground_plane.py, updated tests, and verified CLI help output. Documentation does not mention --metrics-json for refine_ground_plane.py."}
{"id":"py_workspace-j8b","title":"Research scipy.optimize.least_squares robust optimization for depth residuals","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T04:54:04.720996955Z","created_by":"crosstyan","updated_at":"2026-02-07T04:55:22.995644Z","closed_at":"2026-02-07T04:55:22.995644Z","close_reason":"Research completed and recommendations provided."}
{"id":"py_workspace-kpa","title":"Unit Hardening (P0)","status":"closed","priority":0,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T05:01:46.342605011Z","created_by":"crosstyan","updated_at":"2026-02-07T05:01:51.303022101Z","closed_at":"2026-02-07T05:01:51.303022101Z","close_reason":"Implemented unit hardening in SVOReader: set coordinate_units=METER and guarded manual conversion in _retrieve_depth. Added depth sanity logs."}
{"id":"py_workspace-kuy","title":"Move parquet documentation to docs/","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T02:52:12.609090777Z","created_by":"crosstyan","updated_at":"2026-02-07T02:52:43.088520272Z","closed_at":"2026-02-07T02:52:43.088520272Z","close_reason":"Moved parquet documentation to docs/marker-parquet-format.md"}
{"id":"py_workspace-kv8","title":"Update compare_pose_sets.py with Plotly visualization","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-08T07:55:38.911520186Z","created_by":"crosstyan","updated_at":"2026-02-08T07:57:13.711754402Z","closed_at":"2026-02-08T07:57:13.711754402Z","close_reason":"Added Plotly visualization to compare_pose_sets.py with camera frustums, axes, and ground plane overlay."}
{"id":"py_workspace-ld1","title":"Search for depth unit conversion and scaling patterns","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T04:53:53.211242053Z","created_by":"crosstyan","updated_at":"2026-02-07T04:54:56.840335809Z","closed_at":"2026-02-07T04:54:56.840335809Z","close_reason":"Exhaustive search completed. Identified manual scaling in svo_sync.py and SDK-level scaling in depth_sensing.py. Documented risks in learnings.md."}
{"id":"py_workspace-lo0","title":"Add --cv-to-opengl option to apply_calibration_to_fusion_config.py","status":"closed","priority":2,"issue_type":"feature","owner":"crosstyan@outlook.com","created_at":"2026-02-09T03:33:40.435844317Z","created_by":"crosstyan","updated_at":"2026-02-09T03:34:37.514923778Z","closed_at":"2026-02-09T03:34:37.514923778Z","close_reason":"Added --cv-to-opengl option with matrix conversion logic and documentation."}
{"id":"py_workspace-myo","title":"Update docs/calibrate-extrinsics-workflow.md with implementation details","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T09:08:37.688432325Z","created_by":"crosstyan","updated_at":"2026-02-09T09:13:33.810314641Z","closed_at":"2026-02-09T09:13:33.810314641Z","close_reason":"Updated documentation with implementation details"}
{"id":"py_workspace-nlu","title":"Produce A/B visualization comparison for CV world basis","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-08T03:50:56.386223999Z","created_by":"crosstyan","updated_at":"2026-02-08T03:52:41.232154353Z","closed_at":"2026-02-08T03:52:41.232154353Z","close_reason":"Generated A/B comparison images and analyzed visual differences. Source files remain unchanged."}
{"id":"py_workspace-nvw","title":"Update documentation for robust depth refinement","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T05:41:32.963615133Z","created_by":"crosstyan","updated_at":"2026-02-07T05:43:55.707975317Z","closed_at":"2026-02-07T05:43:55.707975317Z","close_reason":"Documentation updated with robust refinement details"}
{"id":"py_workspace-nxy","title":"Remove --cv-to-opengl option from apply_calibration_to_fusion_config.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T04:01:56.334044487Z","created_by":"crosstyan","updated_at":"2026-02-09T04:02:55.01899015Z","closed_at":"2026-02-09T04:02:55.01899015Z","close_reason":"Removed --cv-to-opengl option and associated logic as requested."}
{"id":"py_workspace-q4w","title":"Add type hints and folder-aware --svo input in calibrate_extrinsics.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-06T10:01:13.943518267Z","created_by":"crosstyan","updated_at":"2026-02-06T10:03:09.855307397Z","closed_at":"2026-02-06T10:03:09.855307397Z","close_reason":"Implemented type hints and directory expansion for --svo"}
{"id":"py_workspace-q8j","title":"Add script to visualize generated camera extrinsics","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T08:22:35.151648893Z","created_by":"crosstyan","updated_at":"2026-02-07T08:27:27.034717788Z","closed_at":"2026-02-07T08:27:27.034717788Z","close_reason":"Implemented visualize_extrinsics.py utility script and verified with example data."}
{"id":"py_workspace-qf9","title":"Implement RMSE-based fallback for depth pooling","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T09:03:17.759148159Z","created_by":"crosstyan","updated_at":"2026-02-07T09:06:33.106901615Z","closed_at":"2026-02-07T09:06:33.106901615Z","close_reason":"Implemented RMSE-based fallback and verified with tests"}
{"id":"py_workspace-rb7","title":"Implement Core ICP Registration Module","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T10:39:08.704944024Z","created_by":"crosstyan","updated_at":"2026-02-10T02:58:23.123709779Z","closed_at":"2026-02-10T02:58:23.123709779Z","close_reason":"Completed ICP module, CLI integration, tests, and verification"}
{"id":"py_workspace-t4e","title":"Add --min-markers CLI and rejection debug logs in calibrate_extrinsics","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-06T10:21:51.846079425Z","created_by":"crosstyan","updated_at":"2026-02-06T10:22:39.870440044Z","closed_at":"2026-02-06T10:22:39.870440044Z","close_reason":"Added --min-markers (default 1), rejection debug logs, and clarified accepted-pose summary label"}
{"id":"py_workspace-th3","title":"Implement Best-Frame Selection for depth verification","status":"closed","priority":1,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T05:04:11.896109458Z","created_by":"crosstyan","updated_at":"2026-02-07T05:06:07.346747231Z","closed_at":"2026-02-07T05:06:07.346747231Z","close_reason":"Implemented best-frame selection with scoring logic and verified with tests."}
{"id":"py_workspace-tpz","title":"Refactor visualize_extrinsics.py to use true global basis conversion","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T17:41:09.345966612Z","created_by":"crosstyan","updated_at":"2026-02-07T17:43:35.501465973Z","closed_at":"2026-02-07T17:43:35.501465973Z","close_reason":"Refactored visualize_extrinsics.py to use true global basis conversion"}
{"id":"py_workspace-uq1","title":"Fix ground plane correction to be relative to consensus","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T08:47:54.277274706Z","created_by":"crosstyan","updated_at":"2026-02-09T08:51:25.807562122Z","closed_at":"2026-02-09T08:51:25.807562122Z","close_reason":"Implemented consensus-relative correction to avoid large absolute shifts"}
{"id":"py_workspace-vls","title":"Refactor ground_plane.py to use dataclasses","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T07:08:47.899539937Z","created_by":"crosstyan","updated_at":"2026-02-09T07:09:04.091369844Z","closed_at":"2026-02-09T07:09:04.091369844Z","close_reason":"Refactored ground_plane.py to use FloorPlane and FloorCorrection dataclasses"}
{"id":"py_workspace-wsk","title":"Fix basedpyright errors in tests and exclude ogl_viewer","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-07T08:54:16.6652971Z","created_by":"crosstyan","updated_at":"2026-02-07T08:58:49.256601506Z","closed_at":"2026-02-07T08:58:49.256601506Z","close_reason":"Fixed basedpyright errors"}
{"id":"py_workspace-xsi","title":"Document ground plane refinement workflow","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-09T09:01:27.119232051Z","created_by":"crosstyan","updated_at":"2026-02-09T09:01:34.409182855Z","closed_at":"2026-02-09T09:01:34.409182855Z","close_reason":"Documentation updated with implementation details"}
{"id":"py_workspace-z3r","title":"Add debug logs for successful ArUco detection","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-06T10:17:30.195422209Z","created_by":"crosstyan","updated_at":"2026-02-06T10:18:35.263206185Z","closed_at":"2026-02-06T10:18:35.263206185Z","close_reason":"Added loguru debug logs for successful ArUco detections in calibrate_extrinsics loop"}
-4
View File
@@ -1,4 +0,0 @@
{
"database": "beads.db",
"jsonl_export": "issues.jsonl"
}
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "zed-playground",
"dockerComposeFile": "../docker-compose.yml",
"service": "zed",
"workspaceFolder": "/workspaces/zed-playground",
"workspaceFolder": "/workspaces/zed_playground",
"shutdownAction": "stopCompose",
"customizations": {
"vscode": {
+4 -1
View File
@@ -1,4 +1,3 @@
playground/
misc/zed_installer.run
clangd-linux-*
__pycache__/
@@ -6,3 +5,7 @@ __pycache__/
.venv/
.ruff_cache/
*.svo2
home/
workspaces/zed_workspace/unmanaged/
workspaces/cvmmap_workspace/
+38 -7
View File
@@ -1,8 +1,5 @@
FROM stereolabs/zed:5.1-gl-devel-cuda12.8-ubuntu24.04
ARG PROXYCHAIN_SOCKS5_HOST=127.0.0.1
ARG PROXYCHAIN_SOCKS5_PORT=36000
# Use USTC mirrors for faster access in China.
RUN if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then \
sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.ustc.edu.cn/ubuntu/|g' /etc/apt/sources.list.d/ubuntu.sources; \
@@ -24,13 +21,47 @@ RUN if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then \
git \
gdb \
vim \
ranger \
ninja-build \
python3-pip \
python3-setuptools \
python3-venv \
libopencv-dev \
proxychains-ng \
&& if [ -f /etc/proxychains4.conf ]; then \
sed -i 's|^socks4[[:space:]]\\+127\\.0\\.0\\.1[[:space:]]\\+9050|socks5 '"${PROXYCHAIN_SOCKS5_HOST}"' '"${PROXYCHAIN_SOCKS5_PORT}"'|g' /etc/proxychains4.conf; \
fi \
&& rm -rf /var/lib/apt/lists/*
# Install uv, bun, opencode, and zellij with proxy support
ARG HTTP_PROXY_HOST=127.0.0.1
ARG HTTP_PROXY_PORT=36000
ENV http_proxy=http://${HTTP_PROXY_HOST}:${HTTP_PROXY_PORT} \
https_proxy=http://${HTTP_PROXY_HOST}:${HTTP_PROXY_PORT} \
HTTP_PROXY=http://${HTTP_PROXY_HOST}:${HTTP_PROXY_PORT} \
HTTPS_PROXY=http://${HTTP_PROXY_HOST}:${HTTP_PROXY_PORT}
# Install uv (Python package manager)
RUN curl -LsSf https://astral.sh/uv/install.sh | sh \
&& mv /root/.local/bin/uv /usr/local/bin/uv \
&& mv /root/.local/bin/uvx /usr/local/bin/uvx
# Install bun (JavaScript runtime)
RUN curl -fsSL https://bun.sh/install | bash \
&& mv /root/.bun/bin/bun /usr/local/bin/bun
RUN printf "%s\n" \
"[install]" \
'registry = "https://registry.npmmirror.com"' \
> /root/.bunfig.toml \
&& bun add -g opencode-ai @openai/codex \
&& ln -sf /root/.bun/bin/opencode-ai /usr/local/bin/opencode
# Install zellij (terminal multiplexer) - download latest binary
RUN ZELLIJ_VERSION=$(curl -s https://api.github.com/repos/zellij-org/zellij/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') \
&& curl -fsSL "https://github.com/zellij-org/zellij/releases/download/${ZELLIJ_VERSION}/zellij-x86_64-unknown-linux-musl.tar.gz" -o /tmp/zellij.tar.gz \
&& tar -xzf /tmp/zellij.tar.gz -C /usr/local/bin zellij \
&& rm /tmp/zellij.tar.gz \
&& chmod +x /usr/local/bin/zellij
# Unset proxy environment variables after installations
ENV http_proxy="" \
https_proxy="" \
HTTP_PROXY="" \
HTTPS_PROXY=""
+7 -2
View File
@@ -5,11 +5,16 @@ services:
dockerfile: Dockerfile
network: host
container_name: zed-dev
ipc: host
shm_size: "8gb"
volumes:
- .:/workspaces/zed-playground:cached
- ./workspaces/zed_workspace:/workspaces/zed_workspace
- ./workspaces/py_workspace:/workspaces/py_workspace
- ./workspaces/cvmmap_workspace:/workspaces/cvmmmap_workspace
- ./home:/root
- /tmp/.X11-unix:/tmp/.X11-unix:rw
working_dir: /workspaces/zed-playground
- /tmp/cvmmap:/tmp/cvmmap
working_dir: /workspaces/zed_workspace
environment:
DISPLAY: "${DISPLAY}"
NVIDIA_VISIBLE_DEVICES: "all"
-28
View File
@@ -1,28 +0,0 @@
# HIDAPI/libusb
SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f681", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f781", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f881", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0666"
# HIDAPI/hidraw
KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f681", MODE="0666"
KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f781", MODE="0666"
KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f881", MODE="0666"
KERNEL=="hidraw*", ATTRS{busnum}=="1", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0666"
# blacklist for usb autosuspend
# http://kernel.org/doc/Documentation/usb/power-management.txt
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f780", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f781", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f881", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0424", ATTRS{idProduct}=="2512", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f780", TEST=="power/autosuspend", ATTR{power/autosuspend}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f781", TEST=="power/autosuspend", ATTR{power/autosuspend}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f881", TEST=="power/autosuspend", ATTR{power/autosuspend}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0424", ATTRS{idProduct}=="2512", TEST=="power/autosuspend", ATTR{power/autosuspend}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f780", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f781", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="2b03", ATTRS{idProduct}=="f881", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="-1"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0424", ATTRS{idProduct}=="2512", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="-1"
-14
View File
@@ -1,14 +0,0 @@
# This script will setup USB rules to open the ZED cameras without root access
# This can also be useful to access the cameras from a docker container without root (this script needs to be run on the host)
# NB: Running the ZED SDK installer will already setup those
# Print the commands
set -x
# Download the lightest installer
wget -q https://download.stereolabs.com/zedsdk/3.5/jp44/jetsons -O zed_installer.run
# Extracting only the file we're interested in
bash ./zed_installer.run --tar -x './99-slabs.rules' > /dev/null 2>&1
sudo mv "./99-slabs.rules" "/etc/udev/rules.d/"
sudo chmod 777 "/etc/udev/rules.d/99-slabs.rules"
sudo udevadm control --reload-rules && sudo udevadm trigger
-45
View File
@@ -1,45 +0,0 @@
# SQLite databases
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm
# Daemon runtime files
daemon.lock
daemon.log
daemon.pid
bd.sock
sync-state.json
last-touched
# Local version tracking (prevents upgrade notification spam after git ops)
.local_version
# Legacy database files
db.sqlite
bd.db
# Worktree redirect file (contains relative path to main repo's .beads/)
# Must not be committed as paths would be wrong in other clones
redirect
# Merge artifacts (temporary files from 3-way merge)
beads.base.jsonl
beads.base.meta.json
beads.left.jsonl
beads.left.meta.json
beads.right.jsonl
beads.right.meta.json
# Sync state (local-only, per-machine)
# These files are machine-specific and should not be shared across clones
.sync.lock
sync_base.jsonl
export-state/
# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here.
# They would override fork protection in .git/info/exclude, allowing
# contributors to accidentally commit upstream issue databases.
# The JSONL files (issues.jsonl, interactions.jsonl) and config files
# are tracked by git by default since no pattern above ignores them.
-81
View File
@@ -1,81 +0,0 @@
# 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](https://github.com/steveyegge/beads)
## Quick Start
### Essential Commands
```bash
# 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> --status in_progress
bd update <issue-id> --status done
# Sync with git remote
bd sync
```
### Working with Issues
Issues in Beads are:
- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
- **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
- Intelligent JSONL merge resolution
## Get Started with Beads
Try Beads in your own projects:
```bash
# 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](https://github.com/steveyegge/beads/tree/main/docs)
- **Quick Start Guide**: Run `bd quickstart`
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
---
*Beads: Issue tracking that moves at the speed of thought*
-67
View File
@@ -1,67 +0,0 @@
# Beads Configuration File
# This file configures default behavior for all bd commands in this repository
# All settings can also be set via environment variables (BD_* prefix)
# or overridden with command-line flags
# Issue prefix for this repository (used by bd init)
# If not set, bd init will auto-detect from directory name
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
# issue-prefix: ""
# Use no-db mode: load from JSONL, no SQLite, write back after each command
# When true, bd will use .beads/issues.jsonl as the source of truth
# instead of SQLite database
# no-db: false
# Disable daemon for RPC communication (forces direct database access)
# no-daemon: false
# Disable auto-flush of database to JSONL after mutations
# no-auto-flush: false
# Disable auto-import from JSONL when it's newer than database
# no-auto-import: false
# Enable JSON output by default
# json: false
# Default actor for audit trails (overridden by BD_ACTOR or --actor)
# actor: ""
# Path to database (overridden by BEADS_DB or --db)
# db: ""
# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
# auto-start-daemon: true
# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
# flush-debounce: "5s"
# Export events (audit trail) to .beads/events.jsonl on each flush/sync
# When enabled, new events are appended incrementally using a high-water mark.
# Use 'bd export --events' to trigger manually regardless of this setting.
# events-export: false
# Git branch for beads commits (bd sync will commit to this branch)
# IMPORTANT: Set this for team projects so all clones use the same sync branch.
# This setting persists across clones (unlike database config which is gitignored).
# Can also use BEADS_SYNC_BRANCH env var for local override.
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
# sync-branch: "beads-sync"
# Multi-repo configuration (experimental - bd-307)
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
# repos:
# primary: "." # Primary repo (where this database lives)
# additional: # Additional repos to hydrate from (read-only)
# - ~/beads-planning # Personal planning repo
# - ~/work-planning # Work planning repo
# Integration settings (access with 'bd config get/set')
# These are stored in the database, not in this file:
# - jira.url
# - jira.project
# - linear.url
# - linear.api-key
# - github.org
# - github.repo
-14
View File
@@ -1,14 +0,0 @@
{"id":"py_workspace-1ns","title":"Fix test_refine_with_icp_global_init_success failure","status":"closed","priority":1,"issue_type":"bug","owner":"crosstyan@outlook.com","created_at":"2026-02-10T16:37:50.834251483Z","created_by":"crosstyan","updated_at":"2026-02-10T16:38:07.896271416Z","closed_at":"2026-02-10T16:38:07.896271416Z","close_reason":"Fixed by disabling overlap check for the test case"}
{"id":"py_workspace-21t","title":"Implement point extraction functions (hybrid/full/SOR)","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-10T15:25:37.163180081Z","created_by":"crosstyan","updated_at":"2026-02-10T15:31:00.975891894Z","closed_at":"2026-02-10T15:31:00.975891894Z","close_reason":"Implemented point extraction functions (hybrid/full/SOR) and added tests"}
{"id":"py_workspace-39i","title":"Fix success gate + add per-pair diagnostic logging","status":"closed","priority":1,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-10T15:22:17.79015381Z","created_by":"crosstyan","updated_at":"2026-02-10T15:22:22.41606631Z","closed_at":"2026-02-10T15:22:22.41606631Z","close_reason":"Fixed success gate, added logging and ensured pair results storage"}
{"id":"py_workspace-55d","title":"Integrate region selection into refine_with_icp","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-10T16:42:56.393263772Z","created_by":"crosstyan","updated_at":"2026-02-10T16:53:22.473347524Z","closed_at":"2026-02-10T16:53:22.473347524Z","close_reason":"Completed integration of region selection, SOR, and overlap dispatch into refine_with_icp. Verified with 33 passing tests."}
{"id":"py_workspace-72h","title":"Fix pose graph edge transform frame consistency","status":"closed","priority":1,"issue_type":"bug","owner":"crosstyan@outlook.com","created_at":"2026-02-11T04:08:33.003628773Z","created_by":"crosstyan","updated_at":"2026-02-11T04:22:03.557684498Z","closed_at":"2026-02-11T04:22:03.557684498Z","close_reason":"Fixed pose graph edge transform frame consistency"}
{"id":"py_workspace-95t","title":"Implement tests/test_depth_bias.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-11T11:40:11.508498726Z","created_by":"crosstyan","updated_at":"2026-02-11T12:22:55.190223527Z","closed_at":"2026-02-11T12:22:55.190223527Z","close_reason":"Implemented comprehensive synthetic tests for depth bias estimation with relaxed tolerances and fixed imports"}
{"id":"py_workspace-9c2","title":"Fix Task 5 regression: Restore missing Task 6 tests","status":"closed","priority":1,"issue_type":"bug","owner":"crosstyan@outlook.com","created_at":"2026-02-10T16:54:56.776769315Z","created_by":"crosstyan","updated_at":"2026-02-10T16:56:47.972592252Z","closed_at":"2026-02-10T16:56:47.972592252Z","close_reason":"Restored missing Task 6 tests. All 37 tests passing."}
{"id":"py_workspace-cgq","title":"Wire CLI flags in refine_ground_plane.py","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-10T16:59:29.933240985Z","created_by":"crosstyan","updated_at":"2026-02-10T17:00:33.833878205Z","closed_at":"2026-02-10T17:00:33.833878205Z","close_reason":"Implemented CLI flags and verified with help/basedpyright"}
{"id":"py_workspace-clt","title":"Update documentation for depth bias correction","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-11T11:41:17.030047938Z","created_by":"crosstyan","updated_at":"2026-02-11T11:41:21.053176496Z","closed_at":"2026-02-11T11:41:21.053176496Z","close_reason":"Documentation updated in README and diagnosis report"}
{"id":"py_workspace-g2r","title":"Implement Task 6: FPFH+RANSAC global pre-alignment","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-10T16:24:32.212190403Z","created_by":"crosstyan","updated_at":"2026-02-10T16:24:41.923789209Z","closed_at":"2026-02-10T16:24:41.923789209Z","close_reason":"Implemented FPFH+RANSAC global pre-alignment with tests and verification"}
{"id":"py_workspace-k61","title":"Add point extraction functions (hybrid/full/SOR)","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-10T09:54:11.376739559Z","created_by":"crosstyan","updated_at":"2026-02-10T09:54:32.257034655Z","closed_at":"2026-02-10T09:54:32.257034655Z","close_reason":"Implemented point extraction functions and ICPConfig update"}
{"id":"py_workspace-u62","title":"Task 9: Tests + README + regression verification","status":"closed","priority":2,"issue_type":"task","owner":"crosstyan@outlook.com","created_at":"2026-02-10T17:03:59.317760972Z","created_by":"crosstyan","updated_at":"2026-02-10T17:13:44.356535626Z","closed_at":"2026-02-10T17:13:44.356535626Z","close_reason":"Completed Task 9: Added comprehensive tests, updated README, and verified full regression."}
{"id":"py_workspace-ubp","title":"Fix pose graph edge direction in icp_registration.py","status":"closed","priority":1,"issue_type":"bug","owner":"crosstyan@outlook.com","created_at":"2026-02-11T03:57:08.105603338Z","created_by":"crosstyan","updated_at":"2026-02-11T11:27:08.109400476Z","closed_at":"2026-02-11T11:27:08.109400476Z","close_reason":"Completed Task 3: Wired CLI flag in refine_ground_plane.py and verified with help/basedpyright."}
{"id":"py_workspace-wcs","title":"Fix ICP pairs converge but poses unchanged","status":"closed","priority":1,"issue_type":"bug","owner":"crosstyan@outlook.com","created_at":"2026-02-11T02:58:41.894537923Z","created_by":"crosstyan","updated_at":"2026-02-11T11:27:08.111924117Z","closed_at":"2026-02-11T11:27:08.111924117Z","close_reason":"Completed Task 3: Wired CLI flag in refine_ground_plane.py and verified with help/basedpyright."}
-4
View File
@@ -1,4 +0,0 @@
{
"database": "beads.db",
"jsonl_export": "issues.jsonl"
}
@@ -1,5 +0,0 @@
Metadata-Version: 2.4
Name: pyzed
Version: 0.1.0
Summary: Wrapper for ZED SDK
Requires-Python: >=3.12
@@ -1,8 +0,0 @@
pyproject.toml
pyzed/__init__.py
pyzed/sl.cpython-312-x86_64-linux-gnu.so
pyzed/sl.pyi
pyzed.egg-info/PKG-INFO
pyzed.egg-info/SOURCES.txt
pyzed.egg-info/dependency_links.txt
pyzed.egg-info/top_level.txt
@@ -1 +0,0 @@
pyzed
File diff suppressed because it is too large Load Diff
@@ -1,5 +0,0 @@
Metadata-Version: 2.4
Name: pyzed
Version: 0.1.0
Summary: Wrapper for ZED SDK
Requires-Python: >=3.12
@@ -1,9 +0,0 @@
__init__.py
pyproject.toml
sl.pyi
./__init__.py
./sl.pyi
pyzed.egg-info/PKG-INFO
pyzed.egg-info/SOURCES.txt
pyzed.egg-info/dependency_links.txt
pyzed.egg-info/top_level.txt
@@ -1 +0,0 @@
pyzed
File diff suppressed because it is too large Load Diff
@@ -6,3 +6,7 @@
- Earlier run showed bias-on optimized=1 and no-bias optimized=0.
- Later debug run showed bias-on optimized=0 and no-bias optimized=1.
- This variability blocks a strict deterministic acceptance claim for "bias-on always better" without fixed seeds / repeated-trial aggregation.
## 2026-02-11 Determinism control hook update
- No new blockers during implementation.
- Remaining caveat: deterministic behavior depends on Open3D honoring `o3d.utility.random.seed(...)` across all stochastic subpaths/environment backends.
@@ -25,3 +25,8 @@
- No-bias mode behavior is validated by tests and outputs:
- `test_refine_with_icp_bias_toggle_off` passes (estimator bypassed when disabled)
- no-bias output metadata contains empty `depth_biases` (`{}`), confirming no pre-correction applied.
## 2026-02-11 Deterministic ICP seed control
- Added `ICPConfig(seed: Optional[int] = None)` and wired CLI `--seed` into `ICPConfig(seed=seed)` in `refine_ground_plane.py`.
- `refine_with_icp()` now calls `o3d.utility.random.seed(config.seed)` only when seed is provided, preserving default behavior for `None`.
- Added focused tests covering both CLI seed propagation and runtime Open3D seeding hook invocation behavior.

Some files were not shown because too many files have changed in this diff Show More