Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/st3/client-v0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1800,7 +1800,7 @@ The shared `checks.st3` suite includes the adapter's Rust tests.
Rerun the scratch exercise (no live daemon or ChatGPT application is touched):

```sh
nix develop -c bash -c 'export CARGO_TARGET_DIR=tmp/target; cargo run -p fractal-client-codegen && cargo build -j 2 -p fractal-chatgpt -p fractal -p fractal-cli --features fractal/test-support --bin st-chatgpt --bin fractal --example chatgpt_fixture && cargo test -j 2 -p fractal-chatgpt && cargo test -j 2 -p fractal --test assistant_native && python3 scripts/chatgpt-prototype-e2e.py'
nix develop -c bash -c 'export CARGO_TARGET_DIR=tmp/target; cargo run -p fractal-client-codegen && cargo build -j 2 -p fractal-chatgpt -p fractal -p fractal-cli --features fractal/test-support --bin fractal-chatgpt --bin fractal --example chatgpt_fixture && cargo test -j 2 -p fractal-chatgpt && cargo test -j 2 -p fractal --test assistant_native && python3 scripts/chatgpt-prototype-e2e.py'
```

The script starts the repository API harness with its own persistent store, paired gateway,
Expand Down
16 changes: 11 additions & 5 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -617,20 +617,23 @@
st3 = fractal;
# LIVE-MIGRATION END arn:lmig:smalltalk:2026-10-16-fractal-binary-aliases

stChatgpt = pkgs.rustPlatform.buildRustPackage {
pname = "st-chatgpt";
fractalChatgpt = pkgs.rustPlatform.buildRustPackage {
pname = "fractal-chatgpt";
inherit version cargoDeps;
src = self;
cargoBuildFlags = [ "-p" "fractal-chatgpt" "--bin" "st-chatgpt" ];
cargoBuildFlags = [ "-p" "fractal-chatgpt" "--bin" "fractal-chatgpt" ];
# .cargo/config.toml links Linux targets with mold.
nativeBuildInputs = pkgs.lib.optionals pkgs.stdenv.hostPlatform.isLinux [ pkgs.mold ];
# The shared daemon check runs the adapter's Rust tests.
doCheck = false;
# LIVE-MIGRATION BRIDGE arn:lmig:smalltalk:2026-11-01-fractal-chatgpt-alias — DELETE at contraction — https://github.com/compoundingtech/fractal/issues/3032
postInstall = ''ln -s fractal-chatgpt "$out/bin/st-chatgpt"'';
# LIVE-MIGRATION END arn:lmig:smalltalk:2026-11-01-fractal-chatgpt-alias
meta = {
description = "Standalone Fractal ChatGPT MCP adapter";
homepage = "https://github.com/compoundingtech/fractal";
license = pkgs.lib.licenses.mit;
mainProgram = "st-chatgpt";
mainProgram = "fractal-chatgpt";
};
};

Expand Down Expand Up @@ -848,7 +851,10 @@
packages.fractal = fractal;
# Preserve existing .#st2 profile upgrades for at least one release.
packages.st2 = fractal;
packages.st-chatgpt = stChatgpt;
packages.fractal-chatgpt = fractalChatgpt;
# LIVE-MIGRATION BRIDGE arn:lmig:smalltalk:2026-11-01-fractal-chatgpt-alias — DELETE at contraction — https://github.com/compoundingtech/fractal/issues/3032
packages.st-chatgpt = fractalChatgpt;
# LIVE-MIGRATION END arn:lmig:smalltalk:2026-11-01-fractal-chatgpt-alias
packages.fractal-fabric-adapter = fractalFabricAdapter;
packages.st-fabric-adapter = fractalFabricAdapter;
# Isolated bootstrap/live proofs use the exact pairing API revision.
Expand Down
11 changes: 11 additions & 0 deletions release-notes/fractal-chatgpt-nix-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"version": 1,
"summary": "Publish the ChatGPT adapter Nix package as fractal-chatgpt with the st-chatgpt bridge",
"replay": {"status": "none", "detail": "No graph replay or data changes."},
"schema": {"status": "none", "detail": "No storage schema changes."},
"rules": {"status": "none", "detail": "No checkpoint or coordination rule changes."},
"compatibility": {"status": "changed", "detail": "packages.fractal-chatgpt is canonical. packages.st-chatgpt selects the same derivation, and bin/st-chatgpt is a symlink to fractal-chatgpt. The Cargo st-chatgpt target remains. Source exercises that launch the adapter select fractal-chatgpt."},
"downtime": {"status": "none", "detail": "No daemon restart or service interruption is required."},
"manual": {"status": "changed", "detail": "New Nix consumers can select fractal-chatgpt. Existing st-chatgpt package and executable consumers continue to work. The prototype exercise builds and launches fractal-chatgpt."},
"recovery": {"status": "none", "detail": "No persistent data is changed. The retained package attribute and executable symlink continue to invoke the same adapter."}
}
2 changes: 1 addition & 1 deletion scripts/chatgpt-prototype-e2e.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def replace_expired_grant():
with socket.socket() as listener:
listener.bind(('127.0.0.1',0)); port=listener.getsockname()[1]
endpoint='http://127.0.0.1:'+str(port)+'/mcp'
adapter_args=[str(BIN/'st-chatgpt'),'--socket',str(STATE/'st3-client.sock'),'--credential-file',str(credential)]
adapter_args=[str(BIN/'fractal-chatgpt'),'--socket',str(STATE/'st3-client.sock'),'--credential-file',str(credential)]
adapter=start(adapter_args+['--listen','127.0.0.1:'+str(port)],'adapter.log')
def listening():
try:
Expand Down
Loading