Repository navigation
DEN-3945: consolidate all branches into main (2026-09-12 sweep) - #14
Draft
ORESoftware wants to merge 5 commits into
Draft
ORESoftware wants to merge 5 commits into
ORESoftware wants to merge 5 commits into
Conversation
…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>
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.
Consolidation of all branches into
main— DEN-3945 fleet sweep (2026-09-12)Linear: DEN-3945. Every local branch, worktree and uncommitted change under
~/codeswas published without force; this PR merges every branch not already inmainwith merge commits only, conflicts resolved semantically perORESoftware/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 4a79f85orphan-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
Not merged — needs a human/product decision
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