Skip to content

Claude/new session dn7wwg - #1

Merged
doesthings merged 10 commits into
mainfrom
claude/new-session-dn7wwg
Oct 13, 2026
Merged

doesthings merged 10 commits into
mainfrom
claude/new-session-dn7wwg

Conversation

@doesthings

Copy link
Copy Markdown
Owner

No description provided.

The engine mutex was held for a whole frame, so the first GPU upload of a
big model blocked touch input and setModel. The renderer now has its own
GL-thread lock; the scene lock is only held while copying what changed,
and a change made during an upload triggers another frame. Renders are
byte-identical to before.

Every JNI entry point now ignores a released (0) engine handle, and
nativeSetModel frees the model in that case.

Tests: a native test that replaces the model mid-upload (it fails with
the old locking), a JVM test that calls every engine method after
release, and one JVM fork per test class so the whole unit test suite
runs in a single Gradle invocation.
On first launch the app asks whether it may check GitHub for updates; it
stays off unless the user agrees, and Settings has a switch and "Check
now". When on, it asks the GitHub releases API for the latest release at
most once a day and sends nothing else. A newer version is offered with
Download (the APK for this device's ABI, opened in the browser), Later or
Skip this version.

This adds the INTERNET permission, used only for this check. Also
plainer wording for in-app hints, warnings, the empty library and About,
and OFF in the home screen's format list.
A faceted gem cut by a section plane with an orange hatched cap, in the
app's lavender and orange on dark slate, plus a themed (monochrome)
version. scripts/make_icon.py generates the vector drawables and a
512 px preview from one piece of geometry.
Readability pass on the README, release notes, changelog, contributing
and releasing guides, third-party notices and issue templates; privacy
text now describes the optional update check. README screenshots and the
hero banner (now with the icon) are regenerated.
Strip Windows line endings, wrapping, spaces and certutil BEGIN/END lines
before decoding, and say clearly whether the base64 or the password and
alias are wrong. The certificate check is unchanged.
A BOM or zero-width space copied along with the base64 made decoding
fail. Keep only base64 characters and report how many bytes were
dropped; opening the keystore and the certificate check still guard
the release.
Trim invisible characters and whitespace from the password and alias
secrets, check the store password on its own, fall back to the
keystore's only key when the alias does not match, and use the store
password as the key password for PKCS12 keystores (and for JKS when the
given key password does not unlock the key). Each failure names the
secret to fix. The certificate check is unchanged.
Try the key password when the store password fails (swapped secrets) and
otherwise print keytool's own error, which tells a wrong password from a
file that is not a keystore.
1.0.0 was never published, so the first public release now carries
today's changes, and VERSION, the changelog and the release notes are
back to a single 1.0.0. Releases are now signed with a new key
(CN=Meshwise, O=doesthings, RSA 4096); the workflow and README carry its
certificate fingerprint 69:FE:7F:DD...4B:4D:11.
The release workflow read no certificate from the runner's newest
apksigner, so it would have refused correctly signed APKs. It now uses a
pinned apksigner (build-tools 36.0.0), shows its output when it fails,
and treats a missing certificate as an error even in test builds.

Thickness results were published from a background thread before the
shading switched to the heat map, so the UI (and ViewerFlowTest) could
briefly see the result with the old shading. Both now change together
on the main thread.
@doesthings
doesthings merged commit b12f687 into main Oct 13, 2026
15 checks passed
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