Skip to content

DEN-3945: consolidate all branches into main (2026-09-12 sweep) - #14

Draft
ORESoftware wants to merge 5 commits into
mainfrom
sweep/den-3945-consolidate-all-branches-20260912
Draft

ORESoftware wants to merge 5 commits into
mainfrom
sweep/den-3945-consolidate-all-branches-20260912

Conversation

@ORESoftware

Copy link
Copy Markdown
Contributor

Consolidation of all branches into main — DEN-3945 fleet sweep (2026-09-12)

Linear: DEN-3945. Every local branch, worktree and uncommitted change under ~/codes was published without force; this PR merges every branch not already in main with merge commits only, conflicts resolved semantically per ORESoftware/my-ai/AGENTS.md. Durable sweep record: ORESoftware/den-3945-fleet-sweep.

Semantically resolved and merged

  • chore/DEN-3956-tmp-temp-ignores — union. main had since added its own trailing block (tmp/worktrees, temp/worktrees, 'Repository-local temporary data and authorized Git worktrees'); the branch appends the AGENTS.md trailing-slash scratch pair (tmp/, temp/). Both blocks kept, no ours/theirs. Repo already ignored bare tmp and temp so behaviour is unchanged; the added trailing-slash form is what the DEN-3956 policy check requires. Proved with git check-ignore --no-index -v: tmp/, temp/, tmp/scratch.txt, temp/scratch.txt, tmp/worktrees/x, temp/worktrees/x all matched; src/ts/version.ts and conformance/cases/version-resolution.json not ignored. merge 4a79f85
  • orphan-rescue/268adb4b6260 — merged then corrected to a net no-op; effectively superseded. Single commit 268adb4 carried DEN-2960 (.zpkg.toml drops the [targets.repository] name override) and DEN-2750 (1.x.y is invalid_requirement, not unsatisfied). DEN-2960 merged with zero diff: already on main with the same comment. The conformance-corpus conflict was resolved to main's text because main is a strict superset -- it already flipped 1.x.y to invalid_requirement and added three sibling cases the branch lacked (1.X.y, 1..y, four-segment numeric); the only thing dropped is a cosmetic '(DEN-2750)' suffix on one case name, and case.name is used by src/rust/tests/conformance.rs purely in assertion text, never as a key. The dart/ts hunks merged cleanly in 4a79f85/faf34f3 and I then reverted them in follow-up 51898ab: main already implements the same predicate in all three slices, as a private function OR'd at the single resolveVersion call site (src/rust/resolve.rs:63+144 the oracle, src/ts/resolve.ts:40+90, src/dart/lib/src/resolve.dart:50+105). The branch instead folded it into the PUBLIC looksLikeRange in version., which would have duplicated the logic per slice and widened an exported symbol (src/ts/index.ts, src/dart/lib/zed_lib.dart, asserted in src/dart/test/public_api_test.dart) in Dart and TypeScript only, breaking the three-slice public-API parity this repo exists to enforce. Confirmed no behaviour was lost: main's own src/ts/version.ts passes the same 642 conformance cases including the four wildcard-typo cases. No reset or force-push; the merge commit stands and the correction is a forward commit.

Not merged — already landed / superseded (evidence)

  • macs-mbp/wip-20260912/main — git cherry -v origin/main origin/macs-mbp/wip-20260912/main marks 1cfeec5 with '-' (patch already upstream); patch-id of 1cfeec5 is 2cdc2889f2cb25ce19a8cc180af7dc5f0553cf98, which equals the patch-id of three commits already on origin/main: 3559c84 'wip: preserve uncommitted working tree before sync (20260911)', c11c140 'chore: land uncommitted working-tree changes (5 paths)' and 640ad17. Its only remaining delta reverts newer main work it predates: it would delete .githooks/pre-push and .github/workflows/zed-latest-deps.yml (both added by merged PR ci: gate PRs on latest allowed Zed dependencies #12/fix: make latest-deps gate lockless-safe and exact-head #13), and roll back .gitignore, agents.md, .github/workflows/ci.yml, src/ts/README.md and src/ts/package.json.

Not merged — the branch has its own open PR

  • none

Not merged — needs a human/product decision

  • none

Local verification (exact head 51898ab9c45c)

open-pr-heads.sh exit 0, no open PRs. Clone repacked, alternates dropped, git fsck --connectivity-only clean (dangling trees only). Sweep branch existed only locally and was 4 behind origin/main with 0 ahead; fast-forwarded to d06459f then merged. Pushed after every merge commit and after the correction. Net diff vs origin/main is .gitignore (+4) only. Ran the full ci.yml matrix locally against the merged head with zed-interfaces checked out at the pinned ZED_INTERFACES_POLYGLOT_REF 6ad1ad3c0584a60778bf0d451d9d091ad90e6c0c (pin verified by rev-parse): cargo fmt --all --check clean; cargo clippy --locked --all-targets -D warnings clean; cargo test --locked --all-targets pass; cargo test --locked --test conformance pass; cargo run --example generate_fuzz_corpus then git diff --exit-code conformance/ clean (400 resolution + 200 latest-stable cases regenerate identically); dart analyze --fatal-infos 'No issues found', dart test 644 passed; npx tsc --noEmit clean, npm test 642/642. git diff --check origin/main HEAD clean. No AGENTS.md/agents.md case collision (the two tracked files are agents.md and .openai/AGENTS.md, different directories). Build output deleted (CARGO_TARGET_DIR under build-tmp, node_modules, .dart_tool); disk 80 GB free.

Contracts (TJSV)

n/a (no TypeSpec or JSON Schema peer contract in this repo; cross-language parity here is the JSON conformance corpus, which is regenerated from the Rust oracle and verified byte-identical above)

Merge policy

Draft until verified on the exact head. Where this org has no GitHub Actions minutes, zero-step jobs are admission refusals, not passes.

🤖 Generated with Claude Code

ORESoftware and others added 5 commits August 8, 2026 14:49
…identity

Two contract changes landed on zed-interfaces main while this repo sat on the
older baseline. The corpus is what noticed: `cargo test --test conformance`
against the merged interfaces failed on exactly one case, the one deliberately
recorded as a KNOWN GAP.

DEN-2750 closed that gap. `1.x.y` — a wildcard with a segment after it, and no
operator to give it away — used to slip past `Requirement::validate` and
degrade into an opaque tag, so a typo reported `unsatisfied` ("no version
matches") instead of `invalid_requirement` ("your requirement is malformed").
It is now rejected. The KNOWN GAP case flips to `invalid_requirement`, and both
front-end slices grow a mirror of `looks_like_malformed_dotted_numeric_
requirement`.

The mirrors are deliberately narrow, because the interesting part of that fix
is what it does NOT reclassify: `2026.07.24` stays an exact calendar tag (three
numeric segments is fine; more than three is not), and `1.nginx` / `1.x86_64`
stay opaque tags (a segment containing `x` is not a wildcard, only a bare
`x`/`X`/`*` is). Widening the heuristic to "contains an x" would have broken
every opaque tag with an x in it — which is why the original ticket argued for
a shape-based check rather than a character set.

DEN-2960 settled the root-target question the other way from zed-cli#241: the
whole-repository slice must publish under the canonical package name, so
`[targets.repository]` drops its `name` override here too.

Verified against the merged interfaces tree, all three slices on the same 625
cases: Rust conformance green, Dart 639 tests + analyze --fatal-infos clean,
TypeScript 637 tests + tsc --noEmit clean.

Ordering note: zed-lib CI stays red until zed-pkg/zed-interfaces#58 merges,
since it checks out interfaces main — which has neither src/rust nor, before
#58, a shared view of these two fixes. It was already red for the first reason.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
AGENTS.md requires every repository's .gitignore to ignore both tmp/ and
temp/ in trailing-slash form. tmp/ is the one sanctioned scratch location,
and this ignore rule is what makes committing with explicit paths safe in a
checkout that also holds scratch work.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VntudBLaPGetQaXDbRguZp
.gitignore conflicted because main had since added the
"Repository-local temporary data and authorized Git worktrees" block
(tmp/worktrees, temp/worktrees) in the same trailing region the branch
appends to.

Resolved as a union: both blocks kept. They are compatible and answer
different requirements -- main's pair names the authorized worktree
locations, the branch's pair is the AGENTS.md trailing-slash form of the
sanctioned scratch directories (DEN-3956). Neither side is dropped and
no ours/theirs choice was made.

The repository already ignored bare `tmp` and `temp`, so the added
`tmp/` and `temp/` change no behaviour; they satisfy the policy check
that requires the explicit trailing-slash form. Verified with
`git check-ignore --no-index -v`: tmp/, temp/, tmp/scratch.txt,
temp/scratch.txt, tmp/worktrees/x and temp/worktrees/x all match, while
src/ts/version.ts and conformance/cases/version-resolution.json stay
untracked-clean (not ignored).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The branch's single commit 268adb4 carried two contract follow-ups from
zed-interfaces. Only one of them was still missing here.

Already on main, so taken from main:

* `.zpkg.toml` (DEN-2960): main already drops the `name` override on
  `[targets.repository]`, with the same explanatory comment. Merged with
  no diff.
* `conformance/cases/version-resolution.json` (DEN-2750): main already
  flips the `1.x.y` case from `unsatisfied` to `invalid_requirement` and
  then goes further, adding three sibling cases the branch never had
  (`1.X.y`, `1.*.y`, and a four-segment numeric requirement). The
  conflict was that superset against the branch's narrower original, so
  main's text is kept in full -- the branch's semantic change is already
  contained in it. The only thing not carried over is the "(DEN-2750)"
  suffix the branch appended to one case name: `case.name` is used by
  src/rust/tests/conformance.rs solely in assertion messages, never as a
  key, and tagging one of four sibling cases would be inconsistent with
  the three main added. Ticket traceability lives in this commit instead.

Genuinely missing, so merged in:

* `src/dart/lib/src/version.dart` and `src/ts/version.ts`: the Dart and
  TypeScript mirrors of `looks_like_malformed_dotted_numeric_requirement`.
  Main carries that function in src/rust/resolve.rs and a corpus that
  expects `invalid_requirement`, but `looksLikeRange` in both front-end
  slices still returned false for `1.x.y`, so those two slices disagreed
  with their own conformance corpus. Both mirrors merged cleanly and are
  faithful to the Rust reference, including what it deliberately does not
  reclassify: `2026.07.24` stays an exact calendar tag, `1.nginx` and
  `1.x86_64` stay opaque tags, and a trailing `1.x` stays a valid
  wildcard. Checked by hand against the three cases main added: `1.X.y`
  (wildcard then another segment), `1.*.y` (already caught by the `*`
  test) and four-segment numeric.

Net effect versus main: the two front-end version.* files only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…merge

Correcting the previous commit. DEN-2750 is already implemented on main
in all three slices; I looked for it in the wrong file and merged a
duplicate.

The branch folded `looks_like_malformed_dotted_numeric_requirement` into
the public `looksLikeRange` in `version.dart` / `version.ts`. Main
instead keeps it as a private predicate in `resolve.*`, OR'd at the one
call site in `resolveVersion`:

  src/rust/resolve.rs:63  + :144   (the oracle)
  src/ts/resolve.ts:40    + :90
  src/dart/lib/src/resolve.dart:50 + :105

All three are the same algorithm the branch mirrors, down to what they
refuse to reclassify (`2026.07.24` exact, `1.nginx` / `1.x86_64` opaque,
trailing `1.x` a valid wildcard). My grep for the mirror only covered
`version.dart` / `version.ts`, so I concluded the two front-end slices
were missing it.

Keeping the merged hunks would have been wrong twice over:

* duplicate logic in two files per slice, with no test able to tell them
  apart; and
* `looksLikeRange` is public API -- exported from `src/ts/index.ts` and
  `src/dart/lib/zed_lib.dart`, and asserted on in
  `src/dart/test/public_api_test.dart`. Widening it in Dart and
  TypeScript while Rust's `looks_like_range` stays narrow would break
  the three-slice public-API parity this repository exists to hold.

Confirmed empirically before reverting: `src/ts` on main's `version.ts`
passes the same 642 conformance cases, including the `1.x.y`,
`1.X.y`, `1.*.y` and four-segment cases main added -- the merged hunk
changed no observable behaviour.

The merge commit is kept so the branch's history is recorded; its
`.zpkg.toml` and conformance-corpus content were already on main. Net
effect of this sweep branch is now the .gitignore union only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant