Skip to content

Commit 2848209

Browse files
authored
Merge pull request #198 from zainfathoni/feature/database-migration
feat: modernize codebase with Remix v2, SQLite, and CI updates
2 parents 34ec1cb + 00fc0fc commit 2848209

85 files changed

Lines changed: 18055 additions & 29312 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.beads/.gitignore

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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+
15+
# Local version tracking (prevents upgrade notification spam after git ops)
16+
.local_version
17+
18+
# Legacy database files
19+
db.sqlite
20+
bd.db
21+
22+
# Worktree redirect file (contains relative path to main repo's .beads/)
23+
# Must not be committed as paths would be wrong in other clones
24+
redirect
25+
26+
# Merge artifacts (temporary files from 3-way merge)
27+
beads.base.jsonl
28+
beads.base.meta.json
29+
beads.left.jsonl
30+
beads.left.meta.json
31+
beads.right.jsonl
32+
beads.right.meta.json
33+
34+
# NOTE: Do NOT add negation patterns (e.g., !issues.jsonl) here.
35+
# They would override fork protection in .git/info/exclude, allowing
36+
# contributors to accidentally commit upstream issue databases.
37+
# The JSONL files (issues.jsonl, interactions.jsonl) and config files
38+
# are tracked by git by default since no pattern above ignores them.
39+
40+
# Recently accessed files tracking
41+
last-touched

.beads/README.md

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

.beads/config.yaml

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

.beads/interactions.jsonl

Whitespace-only changes.

.beads/issues.jsonl

Whitespace-only changes.

.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+
}

.claude/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"enabledPlugins": {
3+
"beads@beads-marketplace": true,
4+
"pr-review-toolkit@claude-plugins-official": true,
5+
"typescript-lsp@claude-plugins-official": true
6+
}
7+
}

.eslintrc.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"plugin:react/recommended",
1010
"plugin:jsx-a11y/recommended",
1111
"plugin:@typescript-eslint/recommended",
12-
"plugin:playwright/playwright-test",
1312
"plugin:import/recommended",
1413
"plugin:import/typescript",
1514
"plugin:yml/standard",
@@ -62,6 +61,13 @@
6261
"playwright/missing-playwright-await": "off"
6362
}
6463
},
64+
{
65+
"files": ["e2e/**/*.{ts,tsx}", "playwright-global-setup.ts", "playwright.config.ts"],
66+
"extends": ["plugin:playwright/recommended"],
67+
"rules": {
68+
"playwright/no-wait-for-navigation": "off"
69+
}
70+
},
6571
{
6672
"files": ["*.yaml", "*.yml"],
6773
"parser": "yaml-eslint-parser"

.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

.github/workflows/codeql-analysis.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ jobs:
3838

3939
steps:
4040
- name: Checkout repository
41-
uses: actions/checkout@v2
41+
uses: actions/checkout@v4
4242

4343
# Initializes the CodeQL tools for scanning.
4444
- name: Initialize CodeQL
45-
uses: github/codeql-action/init@v1
45+
uses: github/codeql-action/init@v3
4646
with:
4747
languages: ${{ matrix.language }}
4848
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,7 +53,7 @@ jobs:
5353
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
5454
# If this step fails, then you should remove it and run the build manually (see below)
5555
- name: Autobuild
56-
uses: github/codeql-action/autobuild@v1
56+
uses: github/codeql-action/autobuild@v3
5757

5858
# ℹ️ Command-line programs to run using the OS shell.
5959
# 📚 https://git.io/JvXDl
@@ -67,4 +67,4 @@ jobs:
6767
# make release
6868

6969
- name: Perform CodeQL Analysis
70-
uses: github/codeql-action/analyze@v1
70+
uses: github/codeql-action/analyze@v3

0 commit comments

Comments
 (0)