2026-10-13 13:35:30 -04:00
2026-10-13 13:35:30 -04:00
2026-10-13 13:35:30 -04:00
2026-10-13 13:35:30 -04:00
2026-10-13 13:00:48 -04:00
2026-10-13 13:35:30 -04:00
2026-10-13 13:00:48 -04:00
2026-10-13 13:00:48 -04:00
2026-10-13 13:00:48 -04:00
2026-10-13 13:35:30 -04:00
2026-10-13 13:35:30 -04:00
2026-10-13 13:00:48 -04:00

Cthulhu Tentacles

A repository of experimental Tentacles for Cthulhu-Go, maintained by Storm Dragon. It currently contains one Tentacle: Hello World. Repository material and Hello World are licensed under GPL-3.0-or-later; see LICENSE and CONTRIBUTING.md.

repository.toml identifies this source. catalog.toml explicitly lists its Tentacles, each in a direct top-level folder with its own tentacle.toml. The catalog lists verified native packages for Linux amd64 and arm64. Prepared release artifacts live in dist/; they become downloadable only after publication. The discovery source URL is https://git.stormux.org/storm/cthulhu-tentacles.

Build and check

Keep the matching experimental cthulhu-go checkout beside this directory. The go.mod local replacement uses its Go SDK, including the new uninterruptible presentation option. Building requires Go 1.24 or newer; checks also require Python 3.11 or newer and Make.

make build
make check

The executable is hello-world/bin/hello-world, which is ignored by Git. Checks validate the TOML metadata, registration and suggested bindings, and invoke Hello World through the actual Cthulhu-Go host. They produce no speech or Braille and leave the running reader alone.

Repository installation

With the updated reader, open global Cthulhu Preferences → Tentacles → Add repository and enter the HTTPS Git URL above. Refresh an already added source. Select Hello World and press Space to review its source/version and requested speech/Braille access, then Install and enable. Install instead downloads and saves the package disabled. The reader verifies the catalog's SHA-256 digest, package identity and native architecture before saving a launch entry. Catalogs without a published compatible release show a clear message and remain unchecked. No source builds or install scripts run during this workflow. Resource limits do not make untrusted same-user programs safe.

After installation, refresh status until Active and use Cthulhu+Alt+Shift+H. Disable retains the package; re-enabling and reader startup use installed files without network access. Removing the source retains installed Tentacles. Removing a managed Tentacle stops it and deletes its package files after shutdown. Package updates are not implemented in this slice. See the Hello World live checks.

Prepare and publish packages

make check
make package

tools/package.py cross-builds statically linked native binaries for Linux amd64 and arm64 from the matching adjacent SDK. It creates deterministic archives containing tentacle.toml, bin/hello-world, README.md and LICENSE, plus dist/SHA256SUMS and a generated dist/catalog.toml. Go builds use readonly module metadata, trim paths and omit VCS stamping. To build one architecture:

python3 -B tools/package.py --architecture amd64

Validate the actual host-architecture package through Cthulhu-Go's installer and command host, without changing the running reader:

cd ../cthulhu-go
CTHULHU_TENTACLE_RELEASE_ROOT=../cthulhu-tentacles GOCACHE=/tmp/cthulhu-go-cache go test ./internal/tentacle -run '^TestBuiltHelloWorldPackageThroughHost$' -count=1 -v

Before publication, review both repositories' changes and contributing guides. Commit the reviewed source with the matching SDK available; select that source revision for the hello-world-v0.1.0 release. In the Git hosting release page, upload dist/hello-world-0.1.0-linux-amd64.tar.gz, dist/hello-world-0.1.0-linux-arm64.tar.gz and dist/SHA256SUMS. Publish and verify the download URLs and digests before publishing the matching catalog change. Copy the reviewed dist/catalog.toml to catalog.toml, review the diff, and submit/push it explicitly. A release filename/version must never be reused for changed content; bump the version before preparing a later release.

The package command creates local artifacts only. It does not create commits, releases, tags, uploads or pushes. Prepared catalog changes are not evidence that the corresponding release is already available. Live shortcut, speech, Braille, lock/handoff and interruption checks remain necessary after publication and an explicit reader restart. For source-only local testing, the development launch procedure remains in Hello World.

S
Description
No description provided
Readme GPL-3.0
2.8 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 71.6%
Python 27.6%
Makefile 0.8%