0.7.0 fast-follow: doctor's DuckDB check, --db handling in init --cloud, and three smaller papercuts
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
Research direction
Start with tokenjam/cli/cmd_doctor.py and core/db.py for the DuckDB check and storage-settings message; then trace init --cloud, commit-note, the isolation fixture in conftest.py, and the Optimize and Dashboard dollar displays. Run the named onboarding and rules tests with TJ_CONFIG exported, and check the relevant CLI and UI tests. Done means all six reported behaviors are addressed and their checks pass; consider splitting this batch into focused issues first.
Written by the indexing model from the issue text.
Description
Batched follow-ups found by the 0.7.0 pre-release test. None of these gated the release. The first two ship today on 0.6.12 as well, so they are not 0.7.0 regressions, but the first one is visible on a first run and is the one worth fixing soonest.
1. tj doctor reports a red ✗ on "DuckDB writable"
✗ DuckDB writable: Cannot open database: Connection Error: Can't open a
connection to same database file with a different configuration than
existing connections
_check_db in tokenjam/cli/cmd_doctor.py opens a bare duckdb.connect(path) with no config=, while core/db.py already holds a connection to the same path opened with memory_limit, threads and temp_directory. DuckDB's per-path instance cache rejects the mismatch.
The existing downgrade only matches "conflicting lock" and "could not set lock", so this different error falls through to level: error. Reproduces on a fresh database, with and without --db, and identically on the published 0.6.12 wheel.
A new user running tj doctor on a healthy install sees a hard red error about their database being unwritable when it is fine. Fix is to pass the same settings, or to reuse the live connection rather than opening a second one.
2. The storage-settings fallback message contradicts itself
storage.memory_limit='2GB' / storage.threads=4 rejected by DuckDB; falling back to 2GB / 4
Same root cause as #1, same fall-through. It announces a fallback to the values it just said were rejected, which tells the reader nothing and suggests a problem that does not exist. Also pre-existing.
3. tj init --cloud ignores the global --db override
It reads config.storage.path rather than the database the --db flag selected, so tj --db X init --cloud … reports "Forwarded 0 spans, 0 sessions, 0 commits" while syncing from the default database instead. Pointing storage.path at the same file forwards correctly, so a user who never passes --db is unaffected. Worth a one-line fix for consistency with every other command that honours the flag.
4. tj commit-note has no subcommand-level --json or -v
Both are group-level options, so the working invocations are tj --json commit-note and tj -v commit-note. tj commit-note --json does not parse. The documentation now shows the working form, but the flags read more naturally on the subcommand and every neighbouring command accepts them there.
5. The test suite is not immune to an exported TJ_CONFIG
conftest.py's autouse isolation fixture redirects HOME but leaves TJ_CONFIG alone, so a developer with that variable exported in their shell gets three failures that have nothing to do with their change: test_onboard_path_branch::test_bare_onboard_sdk_choice_falls_through_to_generic and both test_rules_surface tests. They pass under env -u TJ_CONFIG.
Isolation that covers one environment variable and not the other is worse than none, because the failure looks like a real regression in onboarding. Unset TJ_CONFIG in the same fixture.
6. Dollar precision differs between two surfaces
The Optimize page renders four decimals ($0.0000 measured, $64.3235) where the Dashboard renders two ($64.32) for the same quantities. Presentation only, but the two screens sit one click apart.
🤖 Generated with Claude Code
- Dominant language
- Python
- Stars
- 122
- Forks
- 35
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 8
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Metabuilder-Labs/tokenjam
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Metabuilder-Labs/tokenjam#786 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Metabuilder-Labs/tokenjam#759 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Metabuilder-Labs/tokenjam#728 ·
Maintainers usually reply within 1 day
-
bug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Metabuilder-Labs/tokenjam#591 ·
Maintainers usually reply within 1 day
-
bug good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Metabuilder-Labs/tokenjam#559 ·
Maintainers usually reply within 1 day
All issues in Metabuilder-Labs/tokenjam
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
aws-samples/sample-per-model-bedrock#464 ·
Maintainers usually reply within 1 day
-
lesson-submission pending-review
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Ikalus1988/MisakaNet#3789 ·
Maintainers usually reply within 1 day
-
Python Volcengine provider returns failures instead of raising themPossibly taken @Ricardo-M-L claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
agent-infra/sandbox#248 ·
-
[Bug] cloud JSON directory loading assumes a Key field in fsspec listingsPossibly taken @Ricardo-M-L claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
hiyouga/LlamaFactory#10910 ·
Maintainers usually reply within 1 day
-
Bundled uv is never updated and trusts the compromised eMudhra certificatesPossibly taken @FabienDanieau claimed this today. Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100