Contents

Known issues

Two kinds of entry. The table lists defects in this repository that are recorded and not yet fixed, each with where it sits; the estate audit of 2026-10-05 found them and each was checked against the tree that day, except the two about PyPI and the remote, which rest on the audit’s own lookup. The sections after it record failures that are a toolchain’s, a package manager’s or a vendor’s doing, each with the symptom, the cause and the rule, so the next person recognises one where they would otherwise diagnose it again. Each module keeps its own page for failures inside its build.

Open defects

Issue Where
A checkout of main cannot install hub from PyPI: it requires sushicore>=0.7.0, and 0.7.0 is unpublished cli/pyproject.toml
v0.2.0 has its release commit of 2026-10-07 and no tag yet, so it is not published; PyPI serves 0.1.0 git, docs/reference/CHANGELOG.md
hub status reports the channel editable for an install from PyPI; the schema allows only editable and frozen cli/sushihub/services/hub_install.py, contract/status.schema.json
git and pipx inherit hub’s stdout, so under --json their plain text lands in the event stream cli/sushihub/services/git_ops.py, cli/sushihub/services/pipx.py, cli/sushihub/services/cli_install.py
hub install --customize decides on sys.stdin.isatty() alone and opens its picker under --json on a terminal cli/sushihub/services/customize.py
hub --json with no subcommand prints the help text to stdout and no result event cli/sushihub/cli.py
The module readiness report of hub doctor is written through the raw Rich console, outside the event stream cli/sushihub/setup/steps.py
The desktop application never reads the child’s stderr, so a traceback from hub and the readiness report never reach the window gui/src/bridge/Process.cpp
The [cli] theme is read from <workspace>/sushihub/cli/, a directory only a workspace made before 2026-09-22 has cli/sushihub/console.py, legacy_cli_dir in cli/sushihub/config.py
hub gui build, test, run and clean are listed for every user and work only when the workspace root is a clone of this repository cli/sushihub/gui_config.py
The tool overrides are named SR_* after sushiruntime, 22 mentions in one file cli/sushihub/config.py
hub status looks for the sh alias in four fixed profile paths and reports none when the PowerShell profile is under a redirected Documents folder cli/sushihub/services/hub_install.py
A module pyproject.toml without [project] name ends hub install-cli in a KeyError cli/sushihub/services/pipx.py
discovery.py is imported by nothing cli/sushihub/services/discovery.py
Neither the CLI nor the desktop application has a logger cli/sushihub/, gui/src/
contract/sushi-account.md says the six endpoints do not exist in sushiweb and names the keyring service sushistack; the code uses sushihub contract/sushi-account.md, cli/sushihub/services/token_store.py
The archived v0.1.0 changelog cites docs/agent/specs/2026-09-05-hub-design.md, which is now docs/design/HUB.md, and has one entry of 246 characters docs/archive/changelog/v0.1.0.md
check_docs_layout.py reports docs/CLAUDE.md, which waits for the owner to move it to the root, and one line of the audit report that reads as a link docs/CLAUDE.md, docs/agent/2026_10_05_ESTATE_AUDIT/REPORT.md

The audit’s code-shape findings that are work and not a failure a user meets are in docs/design/REMAINING_WORK.md and in the audit report itself.

Raising the CUDA pin above 12.6 breaks Pascal builds far from the cause

Symptom. After the CUDA toolkit is bumped past 12.6, nvcc --version succeeds, hub doctor reports the toolkit present, and the CMake configure passes. The build then fails in the ptxas link step with an unknown-architecture error for sm_61.

Cause. Pascal (sm_6x) is hardware this project is actively developed on, not legacy support. NVIDIA drops older architectures from ptxas across major releases, and CUDA 13 removed sm_6x outright. SushiRuntime’s SR_CUDA_ARCH has no default; cmake/gpu/Cuda.cmake resolves it from nvidia-smi, so on a Pascal box it resolves to 61 on its own, and only a 12.x toolkit can compile that. LinuxCudaLocator.provision in sushicore’s sushicore/provision/gpu/cuda.py therefore installs the pinned cuda-toolkit-12-6 package, never the unversioned cuda-toolkit meta-package. The same reason drives _cuda_repo_tag, in the same file: NVIDIA’s apt repos for Ubuntu releases newer than 24.04 carry only CUDA 13.x, so an exact distro tag there 404s on the 12.6 package and the install fails silently. The tag is clamped to _CUDA126_MAX_UBUNTU_TAG (ubuntu2404), whose debs run on newer Ubuntu. Multi-arch binaries are a real case too: SR_CUDA_ARCH accepts a list such as 61;86, so a machine that has moved to Ampere can still ship a Pascal build.

Rule. Do not raise or unpin cuda-toolkit-12-6, and do not lift the ubuntu2404 clamp, without a Pascal build proving the replacement works. A passing nvcc --version proves nothing here.

Changing a vcpkg port’s feature set needs --recurse, which hub install cannot pass

Symptom. A manifest changes a port’s features, for example sdl2 to sdl2[vulkan] in sushiengine/cli/sushistack.deps.toml. hub install then fails at the vcpkg step: vcpkg refuses to rebuild the already-installed port with different features and asks for --recurse.

Cause. vcpkg treats a feature change on an installed port as a removal plus a reinstall of everything depending on it, and only does that when told to with --recurse. VcpkgManager.install in sushicore’s sushicore/provision/packages/vcpkg.py runs a plain vcpkg install <port>:<triplet> with no way to add that flag, and no hub install option exposes it.

Rule. After a feature-set change, run the install once by hand with the workspace’s vcpkg (hub home prints the dependencies/ path; the root is vcpkg_root in .sushistack/workspace.toml when set):

<dependencies>/vcpkg/vcpkg install sdl2[vulkan]:x64-windows --recurse

Then rerun hub install; vcpkg’s list output now carries the featured port, so the check passes. Do not remove the plain port to work around it; --recurse is the supported path.

The runtime, engine and CI lanes build against different SYCL toolchains

Symptom. A SYCL-level behaviour that holds on a developer’s machine fails in CI, or the other way round, with no change in the code under test.

Cause. Three different SYCL toolchains are in use. hub install downloads the newest intel/llvm nightly bundle at the time it runs (install_intel_llvm in sushicore’s sushicore/provision/toolchains/intel_llvm.py), and the install is then reused forever unless --refresh-toolchains is given, so two developer machines can differ from one another. The engine’s CI job pins a specific nightly by date (INTEL_LLVM_DATE in sushiengine/.github/workflows/ci.yml). The runtime’s CI job builds inside intel/oneapi-basekit:latest with Intel’s packaged icpx, a separate libsycl build again. Runtime and header behaviour differs between these builds in ways the SYCL specification leaves open, such as whether a particular call allocates.

Rule. A contract stated at the SYCL level (allocation freedom, ordering, what a runtime call may do) is not proven by a local run. It needs CI proof on the lane that ships it, and a claim that holds on one lane must say which one.

The command was ss, and is now hub

Symptom. Documentation and scripts predating this entry call the workspace command ss.

Cause. ss is not free to claim: iproute2 ships /usr/bin/ss on every Linux distribution, so the workspace command shadowed a system tool of the same name on every machine that had one.

Rule. The command is hub. The installer offers sh as an optional interactive alias for typing, which changes typing only and leaves /bin/sh untouched.

View this page's source