Skip to content

Commit 3d19806

Browse files
authored
Merge pull request #122 from hypercerts-org/richtext-uploadBlob
2 parents dc6ed45 + 4348925 commit 3d19806

30 files changed

+1560
-332
lines changed

.beads/.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# SQLite databases
2+
*.db
3+
*.db?*
4+
*.db-journal
5+
*.db-wal
6+
*.db-shm
7+
8+
# Daemon runtime files
9+
daemon.lock
10+
daemon.log
11+
daemon.pid
12+
bd.sock
13+
sync-state.json
14+
last-touched
15+
16+
# Local version tracking (prevents upgrade notification spam after git ops)
17+
.local_version
18+
19+
# Legacy database files
20+
db.sqlite
21+
bd.db
22+
23+
# Worktree redirect file (contains relative path to main repo's .beads/)
24+
# Must not be committed as paths would be wrong in other clones
25+
redirect
26+
27+
# Merge artifacts (temporary files from 3-way merge)
28+
beads.base.jsonl
29+
beads.base.meta.json
30+
beads.left.jsonl
31+
beads.left.meta.json
32+
beads.right.jsonl
33+
beads.right.meta.json
34+
35+
# Sync state (local-only, per-machine)
36+
# These files are machine-specific and should not be shared across clones
37+
.sync.lock
38+
sync_base.jsonl
39+
40+
# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here.
41+
# They would override fork protection in .git/info/exclude, allowing
42+
# contributors to accidentally commit upstream issue databases.
43+
# The JSONL files (issues.jsonl, interactions.jsonl) and config files
44+
# are tracked by git by default since no pattern above ignores them.

.beads/README.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Beads - AI-Native Issue Tracking
2+
3+
Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly
4+
in your codebase alongside your code.
5+
6+
## What is Beads?
7+
8+
Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their
9+
issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.
10+
11+
**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
12+
13+
## Quick Start
14+
15+
### Essential Commands
16+
17+
```bash
18+
# Create new issues
19+
bd create "Add user authentication"
20+
21+
# View all issues
22+
bd list
23+
24+
# View issue details
25+
bd show <issue-id>
26+
27+
# Update issue status
28+
bd update <issue-id> --status in_progress
29+
bd update <issue-id> --status done
30+
31+
# Sync with git remote
32+
bd sync
33+
```
34+
35+
### Working with Issues
36+
37+
Issues in Beads are:
38+
39+
- **Git-native**: Stored in `.beads/issues.jsonl` and synced like code
40+
- **AI-friendly**: CLI-first design works perfectly with AI coding agents
41+
- **Branch-aware**: Issues can follow your branch workflow
42+
- **Always in sync**: Auto-syncs with your commits
43+
44+
## Why Beads?
45+
46+
**AI-Native Design**
47+
48+
- Built specifically for AI-assisted development workflows
49+
- CLI-first interface works seamlessly with AI coding agents
50+
- No context switching to web UIs
51+
52+
🚀 **Developer Focused**
53+
54+
- Issues live in your repo, right next to your code
55+
- Works offline, syncs when you push
56+
- Fast, lightweight, and stays out of your way
57+
58+
🔧 **Git Integration**
59+
60+
- Automatic sync with git commits
61+
- Branch-aware issue tracking
62+
- Intelligent JSONL merge resolution
63+
64+
## Get Started with Beads
65+
66+
Try Beads in your own projects:
67+
68+
```bash
69+
# Install Beads
70+
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash
71+
72+
# Initialize in your repo
73+
bd init
74+
75+
# Create your first issue
76+
bd create "Try out Beads"
77+
```
78+
79+
## Learn More
80+
81+
- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
82+
- **Quick Start Guide**: Run `bd quickstart`
83+
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)
84+
85+
---
86+
87+
_Beads: Issue tracking that moves at the speed of thought_

.beads/config.yaml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Beads Configuration File
2+
# This file configures default behavior for all bd commands in this repository
3+
# All settings can also be set via environment variables (BD_* prefix)
4+
# or overridden with command-line flags
5+
6+
# Issue prefix for this repository (used by bd init)
7+
# If not set, bd init will auto-detect from directory name
8+
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
9+
# issue-prefix: ""
10+
11+
# Use no-db mode: load from JSONL, no SQLite, write back after each command
12+
# When true, bd will use .beads/issues.jsonl as the source of truth
13+
# instead of SQLite database
14+
# no-db: false
15+
16+
# Disable daemon for RPC communication (forces direct database access)
17+
# no-daemon: false
18+
19+
# Disable auto-flush of database to JSONL after mutations
20+
# no-auto-flush: false
21+
22+
# Disable auto-import from JSONL when it's newer than database
23+
# no-auto-import: false
24+
25+
# Enable JSON output by default
26+
# json: false
27+
28+
# Default actor for audit trails (overridden by BD_ACTOR or --actor)
29+
# actor: ""
30+
31+
# Path to database (overridden by BEADS_DB or --db)
32+
# db: ""
33+
34+
# Auto-start daemon if not running (can also use BEADS_AUTO_START_DAEMON)
35+
# auto-start-daemon: true
36+
37+
# Debounce interval for auto-flush (can also use BEADS_FLUSH_DEBOUNCE)
38+
# flush-debounce: "5s"
39+
40+
# Git branch for beads commits (bd sync will commit to this branch)
41+
# IMPORTANT: Set this for team projects so all clones use the same sync branch.
42+
# This setting persists across clones (unlike database config which is gitignored).
43+
# Can also use BEADS_SYNC_BRANCH env var for local override.
44+
# If not set, bd sync will require you to run 'bd config set sync.branch <branch>'.
45+
# sync-branch: "beads-sync"
46+
47+
# Multi-repo configuration (experimental - bd-307)
48+
# Allows hydrating from multiple repositories and routing writes to the correct JSONL
49+
# repos:
50+
# primary: "." # Primary repo (where this database lives)
51+
# additional: # Additional repos to hydrate from (read-only)
52+
# - ~/beads-planning # Personal planning repo
53+
# - ~/work-planning # Work planning repo
54+
55+
# Integration settings (access with 'bd config get/set')
56+
# These are stored in the database, not in this file:
57+
# - jira.url
58+
# - jira.project
59+
# - linear.url
60+
# - linear.api-key
61+
# - github.org
62+
# - github.repo

.beads/interactions.jsonl

Whitespace-only changes.

.beads/issues.jsonl

Lines changed: 16 additions & 0 deletions
Large diffs are not rendered by default.

.beads/metadata.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"database": "beads.db",
3+
"jsonl_export": "issues.jsonl"
4+
}

.changeset/add-richtext-utility.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
"@hypercerts-org/sdk-core": minor
3+
---
4+
5+
Add RichText utility functions for auto-detecting facets from text
6+
7+
New utility functions to simplify creating rich text facets:
8+
9+
- `createFacetsFromText(text, agent?)` - async function that auto-detects URLs, hashtags, and @mentions. If an agent is
10+
provided, resolves mentions to DIDs.
11+
- `createFacetsFromTextSync(text)` - sync function for fast detection without mention resolution
12+
- Re-exports `RichText` class from `@atproto/api` for advanced use cases
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
"@hypercerts-org/sdk-core": patch
3+
---
4+
5+
Enhance JSDoc documentation for collection and project methods
6+
7+
Added comprehensive JSDoc with examples for:
8+
9+
- `createCollection()` - examples for basic collections, avatar/banner images, and locations
10+
- `updateCollection()` - examples for updating title, images, and adding locations
11+
- `createProject()` - examples for basic projects, avatar/banner, and locations
12+
- `updateProject()` - examples for updating project images
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
"@hypercerts-org/sdk-core": minor
3+
---
4+
5+
Fix SDS blob uploads, add profile creation, and refactor blob operations
6+
7+
**BREAKING:** `HypercertOperationsImpl` and `ProfileOperationsImpl` constructors now require a `BlobOperations` instance
8+
instead of a server URL.
9+
10+
- Route SDS blob uploads to `com.sds.repo.uploadBlob` with repo query parameter, and PDS blob uploads to standard
11+
`com.atproto.repo.uploadBlob`
12+
- Remove incorrect SDS routing logic from profile operations (profiles use standard ATProto endpoints on both PDS and
13+
SDS)
14+
- DRY blob uploads: extract shared `BlobOperations` interface and use dependency injection in both
15+
`ProfileOperationsImpl` and `HypercertOperationsImpl`
16+
- Refactor `applyParamsToProfile` to eliminate code duplication with helper methods
17+
- Add `create()` method to `ProfileOperationsImpl` for creating new profiles
18+
- Fix collection blob upload tests to mock `BlobOperations.upload` instead of `agent.uploadBlob`

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
# Use bd merge for beads JSONL files
3+
.beads/issues.jsonl merge=beads

0 commit comments

Comments
 (0)