Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Local analysis tool for detecting process differences between variants.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Desktop app built with Tauri, SvelteKit and TypeScript.
Install dependencies first with pnpm install.
pnpm tauri dev # desktop app on the default port (1420)
pnpm dev:port 1430 # desktop app on another port, with per-branch app data
pnpm dev # frontend only, in the browser
pnpm tauri build # release binary and installers in src-tauri/target/release/bundle, dev identifier
pnpm tauri build --config src-tauri/tauri.release.conf.json # same, with the release identifier
pnpm tauri build --debug # debug build in src-tauri/target/debug
pnpm release minor # or patch, major, x.y.z: bump, commit, tag, push
git checkout v0.2.0 && pnpm release:mac # once CI has built Windows into the draft
gh release edit v0.2.0 --draft=false --latest # go live
The tag push builds the Windows installer into a draft release (.github/workflows/build.yml). pnpm release:mac builds Apple Silicon locally, adds it to the draft's latest.json and uploads it. Publishing the draft is what the download page and the in-app updater see. pnpm release:mac needs the updater key in ~/.tauri/prodiff.key (or TAURI_SIGNING_PRIVATE_KEY) and TAURI_SIGNING_PRIVATE_KEY_PASSWORD.
The download page is web/index.html, deployed to GitHub Pages by .github/workflows/pages.yml when web/ changes on main.
pnpm db:generate add_group_notes # after editing src/lib/db/schema.ts
drizzle-kit compares schema.ts with its last snapshot and writes src/lib/db/migrations/<NNNN>_<name>.sql plus the files under meta/. Review the SQL and commit all of it. pnpm drizzle-kit generate --custom --name <name> gives an empty migration for SQL drizzle-kit cannot infer, such as reshaping JSON in a column.
The app runs pending migrations at startup, and pnpm seed runs them before writing. Never edit or delete a migration that has shipped; add a new one.
pnpm seed # seed every log in scripts/seed_log/
pnpm seed road_traffic_fine_10k # seed one log by its slug
pnpm seed --app-id com.nicoabarca.prodiff.dev # seed the app data of `pnpm tauri dev`
pnpm seed --app-data-dir /path/to/app-data # seed any app data directory
By default the seed writes to the current branch's app data (com.nicoabarca.prodiff.dev-<branch>), which is what pnpm dev:port opens. Reload the app if it is open. The first run compiles the seed-project binary in release mode, which takes a few minutes.
Each seed log is a pair of files in scripts/seed_log/: <slug>.csv holds the Event Log and <slug>.json holds its manifest.
{
"name": "Road traffic fine 10k (seed)",
"columns": [
{
"name": "Case ID",
"role": "case_id",
"scope": "case",
"caseResolution": "constant",
"type": "string"
},
{ "name": "Activity", "role": "activity_name", "scope": "event", "type": "string" }
],
"hiddenColumns": ["Variant"],
"groups": [
{
"name": "Not dismissed",
"color": "group-2",
"filters": [
{ "kind": "attribute", "column": "dismissal", "mode": "mandatory", "values": ["NIL"] }
]
}
]
}
columns is the Column Mapping. It must map every column in the CSV header exactly once.hiddenColumns lists the columns hidden from the event data table, the Filter editor and the tree's attribute choices.groups is optional. Each Group is applied in array order, which is also its position. color is optional and defaults to the palette color for that position. filters is a Filter List in the same JSON the app stores. case_not_in_group is not supported.To add a seed log, drop a new CSV and manifest pair into scripts/seed_log/. No code changes are needed.
Seeding a slug again resets its Project: the files are replaced, and its Groups, comparison and tree settings are deleted. If the import or any Group fails, the seed reports the error and leaves the previous Project as it was.
pnpm test # run Vitest once
pnpm test:watch # watch mode
pnpm test src/lib/filters # only tests under a path
pnpm check # type-check the app and the e2e suite
cargo test --manifest-path src-tauri/Cargo.toml # all tests
cargo test --manifest-path src-tauri/Cargo.toml duration # tests whose name contains "duration"
pnpm e2e # all specs against the debug e2e binary
pnpm e2e --spec e2e/specs/smoke.e2e.ts # one spec file
pnpm e2e --mochaOpts.grep "empty state" # tests whose name matches
pnpm e2e:release # all specs against a freshly built release binary
pnpm e2e:build # force a debug e2e rebuild after code changes
pnpm e2e builds the debug binary only when it is missing, so run pnpm e2e:build after changing Rust or frontend code. See docs/adr/0007-e2e-tests-with-embedded-webdriver.md.
Frontend tests (pnpm test) run in jsdom and write nothing outside Vitest's cache in node_modules/.vite/vitest.
Rust tests (cargo test):
| Path | What happens |
|---|---|
src-tauri/target/debug/ | Test binaries are compiled here, shared with pnpm tauri dev. |
$TMPDIR/kiara-<name>.csv | CSV fixtures written by the timestamp parsing tests. Overwritten, never deleted. |
E2E tests (pnpm e2e, pnpm e2e:release, pnpm e2e:build):
| Path | What happens |
|---|---|
src-tauri/target/e2e/debug/ and src-tauri/target/e2e/release/ | E2E binaries are built here. Debug is built when missing or on e2e:build; release is rebuilt on every e2e:release. |
build/ and .svelte-kit/ | Overwritten by the frontend build that runs before each e2e binary build. |
~/Library/Application Support/com.nicoabarca.prodiff.e2e/ | Deleted at the start of every run, before the app launches. The app recreates prodiff.db in it (and projects/ once a spec creates a Project); all spec files in the run share them, and they stay until the next run. |
e2e/.artifacts/<suite>-<test>.png | Screenshot saved when a test fails. Never deleted by the suite; gitignored. |
The e2e suite never touches the app data of pnpm tauri dev (com.nicoabarca.prodiff.dev) or of pnpm dev:port (com.nicoabarca.prodiff.dev-<branch>).
VS Code + Svelte + Tauri + rust-analyzer.