Skip to content

chore(reconcile): merge upstream v1.2.0 with fork behaviors retained - #26

Merged
rschlaefli merged 10 commits into
mainfrom
chore/reconcile-upstream-v1.2.0
Sep 18, 2026
Merged

rschlaefli merged 10 commits into
mainfrom
chore/reconcile-upstream-v1.2.0

Conversation

@rschlaefli

Copy link
Copy Markdown
Member

What this does

Merges upstream v1.2.0 (fd9a4fa) into the fork on top of the v1.1.0 baseline, carrying the three upstream changes the fork did not yet have:

The other two v1.2.0 commits (LibreChat-AI#233 release version resolution, LibreChat-AI#225 read-only tip check) were already ported by PR #25.

The merge is conflict-free and keeps upstream files byte-identical to v1.2.0 except the fork's two recorded deltas already on main: the release.yml job guard (fork note + if: ${{ false }}) and the chmod 0555 spec-guard line in ci.yml, where upstream's two new test steps are appended unchanged.

Why it is safe

  • 27 of the 28 net-changed files are blob-identical to upstream fd9a4fa; the ci.yml merge adds only upstream's two test steps ("Verify fleet admission with isolated Redis", "Selected project root containment tests").
  • Overlap analysis: the fork's 55-file patch surface and the merge's 28 files intersect only at .github/workflows/ci.yml; all ten recorded fork behaviors are otherwise untouched, and docs/fork/patches.md records the new audit basis.
  • No merged upstream file adds a logging sink, so the values-free policy gains no surface.
  • No chart, Dockerfile, or dependency change. The fork still creates no tags or releases.

Verification

  • service bun run test: 1097 pass / 0 fail / 12 skip
  • api bun run test: 481 pass / 0 fail
  • fleet admission test with isolated Redis: pass
  • packages/code: 506 tests, 483 pass — the 11 failures are the identical environment-inherited set measured on a pristine v1.2.0 checkout on this host
  • workflow YAML parses; tests/release-version-resolution.sh and tests/release-versioning.sh pass
  • Slice review (GLM 5.3 Flash, max): DONE, no findings — reproduced the blob-identity claim and checked the security lenses (fd-anchored root containment, bounded instruction reads, admission-capacity semantics)
  • Final review (GLM 5.3 Flash continuity fallback carrying the complete final-review contract): DONE, no findings — reproduced the merge topology, blob-identity, plan-compliance, security, and maintainability checks; branch CI is the remaining check

Scope

This PR stops at the verified branch. Merging into main is a separate decision; the plan file (docs/project/2026-09-18-upstream-v1.2.0-integration-plan.md) records the package, evidence, and remaining gated dispositions.

danny-avila and others added 10 commits September 16, 2026 07:38
LibreChat-AI#226)

* Discover bounded repository instructions for opted-in workspaces

* Verify snapshot digests and cross-platform confinement
* feat(code): register explicitly selected project roots

* fix(code): reject shared Git metadata for selected projects

* fix(code): pin selected project identity through executor admission

* fix(code): preserve full filesystem identity precision

* Check selected project identity before replay staging

* Anchor replay copies to the verified working directory

* fix: Bind Selected Project Operations to Held Directory Descriptors

* test: Cover Selected Project PTC and Load Native Fixtures Before Platform Simulation

* fix: Keep Native Root Bindings Worker-Local and Verify Directory Ancestry

* fix: Anchor Project Admission and Preserve Search Permissions
…rors (LibreChat-AI#227)

* fix: Distinguish workspace admission capacity from execution expiry

* test: Preserve execution uncertainty while classifying blocked follow-ups

* fix: Classify admission expiry at the enqueue boundary
…reChat-AI#233)

* ci: Fix Release Version Resolution for Untagged and Resumed Runs

The release workflow resolved its version in one inline shell block under
`set -euo pipefail`, where two paths could not succeed.

Filtering tags through `grep` made a no-match fatal. On the ordinary untagged
tip of `main`, `git tag --points-at HEAD | grep -E '^v[0-9]+...'` exits 1, and
the step died before reaching its skip handling or `next-release-version.sh`, so
a deployable commit could not obtain a release version (LibreChat-AI#228). Selecting stable
tags now reads exit 1 as an empty answer while exit 2 and above still fail the
release, which also lets the missing-previous-tag case report its own error.

The rerun-resume path then rejected the tag it had itself chosen. With a stable
tag already pointing at `HEAD` and no release published, the version comes from
that tag, and the following existence check failed merely because the ref
existed (LibreChat-AI#229). It now compares the tag's commit against the release commit, so
only a tag on some other commit is a collision; `Create tag` already tolerates
a tag that exists.

The block moved into `.github/scripts/resolve-release-version.sh`, beside the
`next-release-version.sh` it calls, so `tests/release-version-resolution.sh` can
cover every path: automatic, resumed, skipped, dispatched, pushed-tag, and the
runs that must be refused, each against a throwaway repository with a stubbed
`gh`.

* fix: harden release resolver execution

---------

Co-authored-by: Lia <lia@librechat.ai>
Co-authored-by: Danny Avila <danny@librechat.ai>
@rschlaefli
rschlaefli marked this pull request as ready for review September 18, 2026 13:12
@rschlaefli
rschlaefli merged commit 7d77c61 into main Sep 18, 2026
10 checks passed
rschlaefli added a commit that referenced this pull request Sep 18, 2026
Record the v1.2.0 integration post-merge receipt on main (PR #26 = 7d77c61: CI and image build green, Release skipped, 0 tags/releases).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants