Skip to content

Release v0.8.0 with NBER-CLI Desktop#6

Merged
SepineTam merged 7 commits into
masterfrom
feat/desktop/runtime-control
Jul 13, 2026
Merged

Release v0.8.0 with NBER-CLI Desktop#6
SepineTam merged 7 commits into
masterfrom
feat/desktop/runtime-control

Conversation

@SepineTam

Copy link
Copy Markdown
Owner

Summary

  • add the Tauri and React Desktop app with the modern research workspace
  • add the optional local HTTP server and schema v3 read-status migration
  • synchronize CLI, Desktop, Tauri, Cargo, and plugin versions at v0.8.0
  • update release workflows so one v* tag builds Desktop artifacts and publishes the matching Python release
  • allow unsigned Desktop releases until paid signing certificates are configured

Validation

  • 446 Python tests passed
  • 16 Desktop tests passed
  • Ruff, TypeScript, Rust, Actionlint, and strict MkDocs builds passed
  • Python wheel and source distribution built successfully
  • macOS DMG content check and installed-package smoke test passed on port 31528

@SepineTam
SepineTam merged commit d68c27f into master Jul 13, 2026
6 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e69d632f98

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

items={feedItems}
totalCount={feedTotalCount}
items={visibleItems}
totalCount={query || filter !== 'all' ? visibleItems.length : feedTotalCount}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve pagination while filters are active

When the local cache has more rows than the first loaded page, this passes visibleItems.length as totalCount whenever a query or the Unread tab is active. FeedList then computes hasMore as false and hides the load-more button, so older unread or matching papers outside the loaded slice become unreachable even though the feed API can page through them.

Useful? React with 👍 / 👎.

Comment thread pyproject.toml
Comment on lines +39 to 43
[project.optional-dependencies]
server = [
"fastapi>=0.110",
"uvicorn>=0.29",
"alembic>=1.13",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep server entry points usable from default installs

Moving FastAPI, Uvicorn, and Alembic behind the server extra means a normal pipx/uv tool install nber-cli no longer installs the modules imported by the still-installed nber-server and nber-sidecar console scripts. Users upgrading from 0.7 or discovering the generated command will hit ModuleNotFoundError unless they reinstall with [server]; either keep these dependencies with the scripts or route the default entry point through a small error that explains the required extra.

Useful? React with 👍 / 👎.

Comment thread .github/workflows/desktop.yml Outdated
python-version: "3.11"

- uses: astral-sh/setup-uv@v3
- uses: astral-sh/setup-uv@v8

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Pin setup-uv to a resolvable immutable tag

The new astral-sh/setup-uv@v8 reference is used across the updated workflows, but setup-uv's v8 release notes say they stopped publishing major/minor tags and that @v8 cannot be used, recommending an immutable tag such as astral-sh/setup-uv@v8.0.0 instead (https://github.com/astral-sh/setup-uv/releases/tag/v8.0.0). As written, GitHub Actions cannot resolve this action, so the Desktop, pytest, lint, docs, and publish jobs fail before any project commands run.

Useful? React with 👍 / 👎.

Comment thread pyproject.toml
Comment on lines 48 to +49
nber-server = "nber_server.main:main"
nber-sidecar = "nber_server.main:main"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include nber_server in the built wheel

With no Hatch wheel package list configured, Hatchling's default wheel selection is based on the project name (https://hatch.pypa.io/1.16/plugins/builder/wheel/#default-file-selection), so nber-cli satisfies the src/nber_cli/__init__.py heuristic and the sibling src/nber_server package is not shipped. These new console scripts therefore point at a module that is missing from PyPI wheels, so even uvx --from "nber-cli[server]" nber-server will fail with ModuleNotFoundError after installation.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant