diff --git a/OFFICIAL-RELEASES.md b/OFFICIAL-RELEASES.md index 1650601..b6d6f53 100644 --- a/OFFICIAL-RELEASES.md +++ b/OFFICIAL-RELEASES.md @@ -4,7 +4,7 @@ FrameBridge is free software under the applicable licenses. Everyone retains the ## What official means -An official FrameBridge release is built from an identified source revision accepted by the project maintainers. It has a version, source archive, installer, checksums and release signatures. The Debian APT repository publishes signed repository metadata. Official distribution starts at https://framebridge.betancourt.one/. +An official FrameBridge release is built from an identified source revision accepted by the project maintainers. It has a version, source archive, installer, checksums and release signatures. The Debian APT repository publishes signed repository metadata. Official distribution starts at https://betancourt.one/framebridge/. Each release record identifies its signed installer, corresponding-source archive and verification material. A source mirror, when marked published in that record, is available read-only at https://betancourt.one/framebridge/git/framebridge.git. Source branch and tag identities are bound to the signed source archive by the release record; this policy requires release artifact signatures, not an individually signed Git tag. Maintainers control write access, reviewed branches, release tags and signing operations. Public visitors and agents do not receive release-signing or direct protected-branch write access. External contributors propose changes through review. diff --git a/README.md b/README.md index 694e96f..6e0f8f2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Run a task on your own machine, return to the same Bash terminal, inspect an X11 desktop, or select an enrolled computer. ChatGPT remains hosted; FrameBridge runs the tools on your Linux computers. -> **Development candidate: `0.3.2~compat.20261027.3`.** This revision is being validated. It is not a signed public release. The separately signed 0.3.1 release remains a different artifact. Read the [candidate scope and validation record](docs/LINUX-COMPATIBILITY-CANDIDATE.md) before choosing a package. +> **Unsigned release candidate: `0.3.2`.** This source preparation promotes the compatibility candidate; it is not a signed public release. Final artifact validation and signing are recorded separately. The signed 0.3.1 release remains a different artifact. Read the [compatibility scope and history](docs/LINUX-COMPATIBILITY-CANDIDATE.md); use the exact artifact release record when choosing a package. ## Start here @@ -26,14 +26,14 @@ The compatibility candidate has separate native Python builds; it is not one int | Ubuntu 24.04 | amd64 / x86_64 | 3.12 | `ubuntu24.04-amd64-py312` | | Linux Mint 22.x | amd64 / x86_64 | 3.12 | `mint22-amd64-py312` | -The preceding `.1` candidate passed VM tests on these systems, including Cinnamon on Mint 22.3, and a Debian production pilot. This `.3` revision needs its own validation. Ubuntu 26.04 and LMDE 7 builds remain experimental; other distributions, older releases and CPU architectures are outside this candidate's scope. +The preceding compatibility candidate `0.3.2~compat.20261027.3` passed installation, normal and optional virtual-runtime startup, actual MCP HTTP/SSE exchanges, terminal and cleanup tests on Debian 13, Ubuntu 24.04 and Mint 22.3 VMs. Mint also passed its Cinnamon window-capture test with its existing WebSocket library unchanged. This 0.3.2 source preparation preserves that runtime behavior; the exact final package bytes require their own artifact validation and release signatures. Ubuntu 26.04 and LMDE 7 builds remain experimental; other distributions, older releases and CPU architectures are outside this candidate's scope. Verify official releases with the independently trusted project key as described in [Official releases](OFFICIAL-RELEASES.md). A candidate's recorded SHA-256 identifies its reviewed file; it is not a release signature. Candidate packages are for reviewed pilots. For example, with the **Mint** candidate downloaded into the current directory: ~~~bash -sudo apt install ./FrameBridge-0.3.2~compat.20261027.3-mint22-amd64-py312.deb +sudo apt install ./FrameBridge-0.3.2-mint22-amd64-py312.deb ~~~ Use the corresponding profile filename on Debian or Ubuntu. Review APT's proposed changes for the actual computer. Installation places the software on disk; it does not establish a ChatGPT connection or replace the system Python. @@ -106,7 +106,9 @@ Use `python3 source/packaging/build_expanded.py --help` for package build profil Read [CONTRIBUTING.md](CONTRIBUTING.md) to propose a change and [SECURITY.md](SECURITY.md) for security reports. Useful compatibility reports name the exact distribution, version, Python version, package profile and tests actually performed. Independent copies retain their applicable software freedoms; they must not be presented as maintainer-approved releases. -Project home: https://framebridge.betancourt.one/ +Project home and 0.3.2 publication origin: https://betancourt.one/framebridge/ + +Use the corresponding-source archive identified in each release record. When that record marks the source mirror published, its read-only HTTP Git endpoint is `https://betancourt.one/framebridge/git/framebridge.git`. Final 0.3.2 publication is pending; this source preparation does not claim that the new packages or mirror are already live. Programming: **ChatGPT**. Original concept and project coordination: **Gerardo Betancourt**. diff --git a/docs/COMMAND-REFERENCE.md b/docs/COMMAND-REFERENCE.md index 4a9a9e4..277751b 100644 --- a/docs/COMMAND-REFERENCE.md +++ b/docs/COMMAND-REFERENCE.md @@ -1,6 +1,6 @@ # FrameBridge — command guide -Version: 0.3.2~compat.20261027.3 | Guide schema: 1 +Version: 0.3.2 | Guide schema: 1 This reference is generated from the shared CLI/MCP guide. Use the matching installed version. @@ -36,7 +36,7 @@ fb --json status Install the .deb built for your exact Debian 13, Ubuntu 24.04/26.04, Linux Mint 22.x or LMDE 7 amd64 profile. These compatibility candidates still require installation and lifecycle validation on each target. Select the artifact from the matching profile folder and keep the distribution system Python. Normal first connection does not require a separate setup, doctor or start sequence. Run connect in a normal interactive terminal; advanced setup is optional for central/node roles and public settings. ~~~sh -sudo apt install ./framebridge-expanded_0.3.2~compat.20261027.3_amd64.deb +sudo apt install ./framebridge-expanded_0.3.2_amd64.deb fb connect ~~~ diff --git a/docs/FRAMEBRIDGE-AGENT-START.md b/docs/FRAMEBRIDGE-AGENT-START.md index 08c4cf9..72b5b0f 100644 --- a/docs/FRAMEBRIDGE-AGENT-START.md +++ b/docs/FRAMEBRIDGE-AGENT-START.md @@ -4,6 +4,8 @@ This is a setup and verification workflow for an assistant that **already has au The currently tested connection is the manual ChatGPT workflow. A coding assistant can help prepare it through the CLI; this document does not claim drop-in integration with every AI client. +Source preparation: **0.3.2, unsigned release candidate**, promoted from compatibility revision `0.3.2~compat.20261027.3` after its Debian 13, Ubuntu 24.04 and Mint 22.3 VM checks passed. Check the exact artifact release record before installation; this prior behavior evidence does not verify the final package bytes or claim public availability. + ## Before handing over Give the assistant the computer you want to work on, the intended task, and the local path of the reviewed matching package. Use the [README's package matrix](../README.md#1-install-the-matching-package). If this is a pilot beside an existing installation, identify a new isolated `--state-dir` and the existing services that must remain running. diff --git a/source/docs/COMMAND-GUIDE.json b/source/docs/COMMAND-GUIDE.json index 3c4ed04..63c6a48 100644 --- a/source/docs/COMMAND-GUIDE.json +++ b/source/docs/COMMAND-GUIDE.json @@ -1,12 +1,12 @@ { "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topics": { "start": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "start", "title": "Start with FrameBridge", @@ -24,7 +24,7 @@ "heading": "Install and connect", "body": "Install the .deb built for your exact Debian 13, Ubuntu 24.04/26.04, Linux Mint 22.x or LMDE 7 amd64 profile. These compatibility candidates still require installation and lifecycle validation on each target. Select the artifact from the matching profile folder and keep the distribution system Python. Normal first connection does not require a separate setup, doctor or start sequence. Run connect in a normal interactive terminal; advanced setup is optional for central/node roles and public settings.", "commands": [ - "sudo apt install ./framebridge-expanded_0.3.2~compat.20261027.3_amd64.deb", + "sudo apt install ./framebridge-expanded_0.3.2_amd64.deb", "fb connect" ] }, @@ -64,12 +64,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "b5be618bfb62d102ebec222370882da129c37e92044ebe86cd9203def5c0b272" + "guide_sha256": "cc94c2c9a7799f8f2fa9c1dc52bc5d3f5205878f6157f1592d1a8ed320897782" }, "commands": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "commands", "title": "Command reference", @@ -136,12 +136,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "043a13ee822b03113ca877351986ee4d25628fc31bf623a9f23134c1980545c0" + "guide_sha256": "572acea43014c97c5b488b35b415a7664724fb081f382c285db825153cf872b2" }, "connection": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "connection", "title": "Connect and disconnect ChatGPT", @@ -190,12 +190,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "3a6218c30256375c32bc80b34609f75b8465e901a2c7012389e6b5cdff995af3" + "guide_sha256": "8dda65a1d4664c7ea887eda254beb211e35bc0c0c6636fdb4574b0297dac0e8e" }, "lifecycle": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "lifecycle", "title": "Services, connection intent and boot policy", @@ -256,12 +256,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "a7dd26f8acc2ffbadb47f01a9fe24b1b547853f576b7b8805e01ab9d40087cd4" + "guide_sha256": "fb34c85f83fd244a914709c7bcb3bc201f2d5c11120954cbb73492dbe5b5ed10" }, "nodes": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "nodes", "title": "Central and node operation", @@ -310,12 +310,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "a535fb417b3dff1c6ad022a83576ea9e001a2f2f78e99a2ca0d146747fe1300c" + "guide_sha256": "81c7738bf57a7dc63625d222351150cd7334a6155a8b35d090cf4a7ef9dc47fb" }, "terminals": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "terminals", "title": "Persistent Bash terminals", @@ -376,12 +376,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "d6854b43a419e32ba16a3707d1481607d0073017daa971597bbeeee885e22f8c" + "guide_sha256": "13ce244963b120fc0a7683b0f5588f035f42bc6fae9b7d86867d74dad06cfcb4" }, "screens": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "screens", "title": "Authentic screen observation and input", @@ -426,12 +426,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "0b43cec434d78c75e277487cd28346c689e6f8111e0d99daf67e03904380651b" + "guide_sha256": "eb738294825f386915a18cc658387dbc7287ecbf98c6e116cb1cf3822c63f3ce" }, "diagnostics": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "diagnostics", "title": "Status and diagnosis", @@ -476,12 +476,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "67ddeb5dc3314452f3378099b5427bed6e3a426547c322294b29f8935302bc5e" + "guide_sha256": "c1eff5c79730716afdffebf3fbf33e6a15c5af8b1576729e6fdc00f8e64b5574" }, "security": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "security", "title": "Authorization, distribution and safe operation", @@ -516,12 +516,12 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "995ee955506bd5ac91b27363c6833d2f6872555d7b6fbb03471b5af18bbf9661" + "guide_sha256": "aa018b6b89a00878fd76ea6e9bd7e6201c9306ac58161d27a31f60118efb6d60" }, "compatibility": { "ok": true, "product": "FrameBridge", - "version": "0.3.2~compat.20261027.3", + "version": "0.3.2", "guide_schema": 1, "topic": "compatibility", "title": "Compatibility with earlier commands", @@ -564,8 +564,8 @@ ], "read_only": true, "capabilities_verified": false, - "guide_sha256": "1a31c25cf96ca3f02f74984eba740dade767816537e3fac9edee9d7cebf86717" + "guide_sha256": "28964bb19f9dee60d17712d7785f90a90c7c72cc7ff3c0f14fa75e74e57221fa" } }, - "guide_sha256": "05db1724919b95443b00670ef3365512c0ac30bbd15462819c3a2236e7df7a25" + "guide_sha256": "5beeecfa511cd5d97ea43908735eb4d2216a9947030b90199b7e14643ba344d8" } diff --git a/source/docs/COMMAND-REFERENCE.md b/source/docs/COMMAND-REFERENCE.md index 4a9a9e4..277751b 100644 --- a/source/docs/COMMAND-REFERENCE.md +++ b/source/docs/COMMAND-REFERENCE.md @@ -1,6 +1,6 @@ # FrameBridge — command guide -Version: 0.3.2~compat.20261027.3 | Guide schema: 1 +Version: 0.3.2 | Guide schema: 1 This reference is generated from the shared CLI/MCP guide. Use the matching installed version. @@ -36,7 +36,7 @@ fb --json status Install the .deb built for your exact Debian 13, Ubuntu 24.04/26.04, Linux Mint 22.x or LMDE 7 amd64 profile. These compatibility candidates still require installation and lifecycle validation on each target. Select the artifact from the matching profile folder and keep the distribution system Python. Normal first connection does not require a separate setup, doctor or start sequence. Run connect in a normal interactive terminal; advanced setup is optional for central/node roles and public settings. ~~~sh -sudo apt install ./framebridge-expanded_0.3.2~compat.20261027.3_amd64.deb +sudo apt install ./framebridge-expanded_0.3.2_amd64.deb fb connect ~~~ diff --git a/source/docs/DEBIAN-TUTORIAL.md b/source/docs/DEBIAN-TUTORIAL.md index 036dc10..6fa5a20 100644 --- a/source/docs/DEBIAN-TUTORIAL.md +++ b/source/docs/DEBIAN-TUTORIAL.md @@ -1,6 +1,6 @@ # FrameBridge — Debian, Ubuntu and Linux Mint installation and first use -Version: 0.3.2~compat.20261027.3 | Guide schema: 1 +Version: 0.3.2 | Guide schema: 1 This reference is generated from the shared CLI/MCP guide. Use the matching installed version. @@ -36,7 +36,7 @@ fb --json status Install the .deb built for your exact Debian 13, Ubuntu 24.04/26.04, Linux Mint 22.x or LMDE 7 amd64 profile. These compatibility candidates still require installation and lifecycle validation on each target. Select the artifact from the matching profile folder and keep the distribution system Python. Normal first connection does not require a separate setup, doctor or start sequence. Run connect in a normal interactive terminal; advanced setup is optional for central/node roles and public settings. ~~~sh -sudo apt install ./framebridge-expanded_0.3.2~compat.20261027.3_amd64.deb +sudo apt install ./framebridge-expanded_0.3.2_amd64.deb fb connect ~~~ diff --git a/source/docs/framebridge.1 b/source/docs/framebridge.1 index 7529401..642ba8a 100644 --- a/source/docs/framebridge.1 +++ b/source/docs/framebridge.1 @@ -1,4 +1,4 @@ -.TH FRAMEBRIDGE 1 "2026-10-27" "FrameBridge 0.3.2~compat.20261027.3" "User Commands" +.TH FRAMEBRIDGE 1 "2026-10-27" "FrameBridge 0.3.2" "User Commands" .SH NAME framebridge, fb \- use local Linux tools and enrolled nodes with ChatGPT .SH SYNOPSIS @@ -21,7 +21,7 @@ fb \-\-json status Install the .deb built for your exact Debian 13, Ubuntu 24.04/26.04, Linux Mint 22.x or LMDE 7 amd64 profile. These compatibility candidates still require installation and lifecycle validation on each target. Select the artifact from the matching profile folder and keep the distribution system Python. Normal first connection does not require a separate setup, doctor or start sequence. Run connect in a normal interactive terminal; advanced setup is optional for central/node roles and public settings. .PP .nf -sudo apt install ./framebridge\-expanded_0.3.2~compat.20261027.3_amd64.deb +sudo apt install ./framebridge\-expanded_0.3.2_amd64.deb fb connect .fi .SS Updating and removal diff --git a/source/expanded/framebridge_expanded/__init__.py b/source/expanded/framebridge_expanded/__init__.py index 75fb0ab..f9aa3e1 100644 --- a/source/expanded/framebridge_expanded/__init__.py +++ b/source/expanded/framebridge_expanded/__init__.py @@ -1 +1 @@ -__version__ = "0.3.2~compat.20261027.3" +__version__ = "0.3.2" diff --git a/source/packaging/build_expanded.py b/source/packaging/build_expanded.py index 8b9bf14..9a1ee01 100755 --- a/source/packaging/build_expanded.py +++ b/source/packaging/build_expanded.py @@ -285,7 +285,7 @@ def main(argv=None): (control / "control").write_text( "Package: " + PACKAGE + "\nVersion: " + VERSION + "\nSection: utils\nPriority: optional\nArchitecture: amd64\n" "Maintainer: FrameBridge \n" - "Homepage: https://framebridge.betancourt.one/\n" + "Homepage: https://betancourt.one/framebridge/\n" "Installed-Size: " + str((installed + 1023) // 1024) + "\n" "Depends: " + relationships["Depends"] + "\n" "Suggests: " + relationships["Suggests"] + "\n" diff --git a/source/packaging/build_profiles.py b/source/packaging/build_profiles.py index bf82d8b..912a177 100644 --- a/source/packaging/build_profiles.py +++ b/source/packaging/build_profiles.py @@ -11,7 +11,7 @@ from pathlib import Path import re -CANDIDATE_VERSION = "0.3.2~compat.20261027.3" +CANDIDATE_VERSION = "0.3.2" VENDOR_RELATIVE = Path("original/geranas/FrameBridge-Fleet-Hub/vendor") SOURCE_VENDOR = Path("sources/original-geranas/FrameBridge-Fleet-Hub/vendor") GLIBC_BASELINE = (2, 34) diff --git a/source/portable/front_door_mcp.py b/source/portable/front_door_mcp.py index de3d4c8..17671c4 100644 --- a/source/portable/front_door_mcp.py +++ b/source/portable/front_door_mcp.py @@ -45,7 +45,7 @@ mcp = FastMCP( "Use the installed CLI and tools for normal work; use a separate source clone when the owner requests software development. " "The six Fleet inspection tools are read-only. Guide instructions do not grant authorization." ), - website_url="https://framebridge.betancourt.one", + website_url="https://betancourt.one/framebridge/", host=HOST, port=PORT, streamable_http_path="/mcp",