Record main's history as an ancestor of release (no file changes — must NOT be squashed) - #5435
Closed
M3gA-Mind wants to merge 188 commits into
Closed
Record main's history as an ancestor of release (no file changes — must NOT be squashed)#5435M3gA-Mind wants to merge 188 commits into
M3gA-Mind wants to merge 188 commits into
Conversation
…eature (tinyhumansai#5049) (tinyhumansai#5061) Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com>
…nscript (ChatThreadView) (tinyhumansai#5097)
…ansai#5091) Co-authored-by: Cursor <cursoragent@cursor.com>
…ai#4786) Co-authored-by: Sami Rusani <14844597+samrusani@users.noreply.github.com>
…inyhumansai#4772) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com> Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
…nsai#5103) Co-authored-by: Sami Rusani <14844597+samrusani@users.noreply.github.com>
…ting/http-server gates (tinyhumansai#5048) (tinyhumansai#5068)
…4929) (tinyhumansai#4998) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Steven Enamakel <31011319+senamakel@users.noreply.github.com> Co-authored-by: Cyrus Gray <144336577+graycyrus@users.noreply.github.com> Co-authored-by: oxoxDev <164490987+oxoxDev@users.noreply.github.com> Co-authored-by: YellowSnnowmann <167776381+YellowSnnowmann@users.noreply.github.com> Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai> Co-authored-by: CodeGhost21 <164498022+CodeGhost21@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: sanil-23 <sanil@tinyhumans.ai> Co-authored-by: M3gA-Mind <elvin@mahadao.com> Co-authored-by: oxoxDev <oxoxdev@users.noreply.github.com>
Co-authored-by: Sami Rusani <14844597+samrusani@users.noreply.github.com> Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
…roval prompt (tinyhumansai#5094) Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
…d profiling optimizations (tinyhumansai#5107)
…completes epic tinyhumansai#4795 (tinyhumansai#5029) Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
…mansai#5364) Co-authored-by: Medulla <medulla@tinyhumans.ai>
tinyhumansai#5167) (tinyhumansai#5340) Co-authored-by: Medulla <medulla@tinyhumans.ai> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…umansai#5365) Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ansai#5366) Co-authored-by: Medulla <medulla@tinyhumans.ai>
…transcript soak (tinyhumansai#5396) Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ssor (tinyhumansai#5405) Co-authored-by: Medulla <medulla@tinyhumans.ai>
…nyhumansai#5401) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…ers (tinyhumansai#5367) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…local-agent relay handler (tinyhumansai#5399) (tinyhumansai#5407)
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…the parked queue (tinyhumansai#5427) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Zero files changed. This merge exists for its parentage, not its diff. Release already contains main's code — tinyhumansai#5433 copied the tree across — but it landed as a squash, so none of main's 187 commits became ancestors. The merge-base stayed frozen at 2219d42, GitHub still reads release as 187 behind, main's SHAs are not reachable from release (which release-staging.yml needs, since its commit_sha input must be reachable), and every future promote re-derives conflicts from that stale base. The six version files keep release's side at v0.63.11; main is on 0.63.6 and a release must never go backwards. Resolving them the other way is the only way this merge could change a file, and it must not. Evidence the code is already there: git diff release main is those same six files and nothing else, and the 47 files touched by main's four newest commits - tinyhumansai#5427, tinyhumansai#5428, tinyhumansai#5420, tinyhumansai#5412 - are byte-identical in release. The resulting tree is identical to release's current tree, which is the same statement made exactly.
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
releasealready contains every line ofmain's code. What it does not contain is main's history.#5433 promoted main into release and was squashed on merge. A squash writes a single commit with a single parent, so the tree came across but none of main's 187 commits became ancestors of release. Git's view of the two branches is therefore unchanged from before that PR: the merge-base is still frozen at
2219d4207.This merge fixes the history and touches nothing else.
Stated more strongly than "no meaningful changes": the merge's tree object is byte-identical to release's current tree.
The code is already in release — evidence
Whole-tree.
mainandreleasediffer in six files, all version-bearing, and nothing else:Per-commit, at the tip. The four newest commits on main touch 47 files between them, and every one of those 47 is byte-identical in release:
8deb5f276fix(memory) — #5427bb4493ce4fix(voice) — #5428d7819492cfeat(mascot) — #5420e29bfc66ffeat(threads) — #5412And the squash is visible directly. #5433 landed with exactly one parent:
One parent — release's previous tip. Main appears nowhere in it.
Why the counter says "187 behind"
GitHub's branch comparison is three-dot: it counts commits reachable from main but not from the merge-base, not from release's tip. With the merge-base frozen at
2219d4207by successive squashes, every commit main has landed since then counts as "ahead", regardless of whether its content is sitting in release already. It is a statement about ancestry, and ancestry is exactly what the squashes failed to record.So the 187 is not wrong — it is measuring the real problem. It just isn't measuring code.
What merging this fixes
git rev-list --count release..mainbecomes 0 (it is 187 today). The "behind" counter clears.release-staging.ymltakes acommit_shainput that must be reachable from the release branch; today a main SHA is not, so staging cannot be pinned to one.The version files
Six conflicts, all version-bearing, all resolved by keeping release's side at v0.63.11 (main is on 0.63.6 — a release must never go backwards).
That resolution is the only way this merge could have changed a file, and it must not. Each of the six was verified identical to release's copy afterwards, rather than trusting the merge strategy.
How this must be merged
This repository is
allow_merge_commit: false— squash-only.Squashing this PR reproduces #5433 exactly: a single-parent commit, no ancestry recorded, the merge-base still
2219d4207, the counter still 187, staging still unable to pin a main SHA, and the next promote fighting the same conflicts with everything merged since added to them. The PR would appear to succeed and change nothing whatsoever — and because its diff is empty, there would be no symptom to notice.There is no resolution or rebase that works around this. A squash cannot record a second parent; that is what a squash is.
So this needs one of two things from a maintainer, and it cannot land correctly without one:
releasespecifically) long enough for this to land as a real merge — this is the option that also fixes every future promote; orOption 1 is worth taking on its own merits. Squash-only on a promote branch is what created this situation, and it will keep creating it: the previous two promotes cost hand-resolutions of 14 and 6 conflicts, and this PR exists solely to repair what the second one could not record.
Verification
git diff --stat upstream/release→ empty; tree object identical to release'sgit log -1 --pretty=%P→ two parents, release then maingit merge-base --is-ancestor upstream/main HEAD→ yes (it is no for release today)git rev-list --count HEAD..upstream/main→ 0git status --porcelain→ clean, no untracked or extra path