The store compares only major.minor.patch, so 1.0.2b6 and 1.0.2b7 both
look like 1.0.2. Pack the pre-release into the patch written to the FPK
manifest while leaving the Python version and image tag unchanged.
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
The slim step deleted playwright/driver, so the console browser install
failed before Chromium could download. The driver is the bundled Node
runtime, not the browser itself.
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Editing a Bridge expert now loads and saves models, knowledge bases, and connectors on the peer. Also refresh portraits and skill tiles, and make FnOS native start exit on TERM instead of resuming the readiness poll.
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the Docker/native wizards on an account-only flow, fail native start
when 8089 never comes up, and vendor harness storage_errors so current
Octop can boot against PyPI harness 1.0.0.
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(tests): align subagent catalog division count with bundled library
The bundled subagent catalog now loads 19 divisions (272 agents), but two
tests still hard-coded an expected count of 16. Update the assertions so the
pre-commit suite is green.
* refactor(fnos): split fnos packaging into docker/ and native/ variants
Restructure the FnOS package layout so the Docker build and the native
installer live under separate directories (fnos/docker and fnos/native)
instead of a single fnos/ tree plus a parallel fnos-native/. Update the
FPK build workflow, build-fpk.sh and fnos/common.sh to source from the
new paths, and refresh fnos/README.md accordingly.
Follow-up to PR #407.
---------
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
* feat(fnos): add FnOS (飞牛 NAS) app packaging for Docker and native installs
Adds the packaging tree to build Octop as a FnOS app center package (.fpk):
- fnos/: Docker-deployable FPK (thin wrapper that runs the Octop image
via docker-compose on the NAS)
- fnos-native/: native FPK that runs Octop directly on the FnOS host with
the system Python 3.12 runtime (no Docker required)
- scripts/build-fpk.sh: generic FPK build helper using the official fnpack
CLI (injects the version from pyproject.toml into the manifest)
Both packages share the same app version as pyproject.toml. Container image
name is referenced as ghcr.io/TencentCloud/octop:latest — maintainers can
republish under their own namespace; the per-repo CI (image build + release
workflow) is intentionally left out of this PR.
* feat(fnos): first-use guide — fixed initial credentials admin/Octop123 with docs
- The previous default password 'octop' does not satisfy the password
policy (>=8 chars incl. letters and digits) enforced by 'octop init',
so the bootstrap admin could not be created
- Switch the default to Octop123, identical to the official Docker image
- Manifest install text now prints the initial account/password and tells
users to change it after first login
- fnos/README.md gains a 'First use' section (credentials table + change
password guidance) so users never need to dig into data directories
* ci(fnos): add FnOS packaging pipeline as a fork-maintainer template
Provides a complete CI template that builds the Octop Docker image,
the Docker .fpk and the native .fpk, then publishes GitHub releases
(fixed version + rolling latest):
- Trigger: workflow_dispatch only, so it never auto-runs on upstream
- Image namespace referenced as ghcr.io/TencentCloud/octop (placeholder;
fork maintainers replace with their own)
- Iteration numbering, changelog generation (install-first, no-merges,
capped at 30 entries) and rolling release management included
* refactor(fnos): dedupe lifecycle scripts into scripts/fnos/common.sh; tighten process kill
Addresses review feedback:
- Extract find_python312 / fix_ownership_and_perms / free_octop_ports into a
single shared library scripts/fnos/common.sh (injected into both packages'
cmd/common.sh by build-fpk.sh at package time) instead of duplicating them
across 7 docker/native lifecycle scripts
- Tighten the leftover-process cleanup: only kill processes under this
install dir (TRIM_APPDEST), no more broad 'pgrep -f octop' that could kill
other users' / other installs' processes
- Root README: add an 'FnOS Installation' section pointing to fnos/README.md
and noting the initial credentials + the #406 dependency for non-root CLI
installs
* feat(fnos): transparent app icons (512/256/64) — remove white background for dark/light themes
---------
Co-authored-by: veenyi <veenyi@users.noreply.github.com>