Repository navigation
Conversation
…d flags after the subcommand Git 2.20-2.33 ship a `rebase--interactive` builtin whose `--cmd <cmd>` adds an exec line after each pick and runs it. The task catalog's inline-command denylist did not model it, so `git rebase--interactive --cmd id`, its `--cmd=id` form and the dashed `git-rebase--interactive` were accepted. `--cmd` is now a Git inline flag under every subcommand (no Git option shares the `--cm` prefix, and a repository alias can rename the helper), and `<sub>--interactive` is read as its porcelain like `<sub>--helper`, so its `--add-exec-commands` mode meets the `rebase`-scoped flag. Subcommand-scoped flags (`clone -u`, `rebase --add-exec-commands`) now count only after an operand naming the subcommand: Git reads a subcommand's options after its name and rejects an unknown option before it, so `git push -u origin clone`, `git config --add alias.r rebase` and `git remote set-branches --add origin rebase` pass, while an unknown global option's value still cannot hide the subcommand. The remaining collateral (`git commit -m rebase --add`, `git log -S clone -u`) is documented and tested. The tracked-pin test now uses CASE_TIMEOUT_MS. Refs HACK-1423 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…le CI test job docs Since #442 the `test` job is only the required fan-in of the four `test shard i/4` jobs. It runs no Bun, but `ci:bun-crash-census` still read it by default and reported zero crashes without saying so, and `workflowJobBunVersion(ci.yml, "test")` found the fan-in block, which has no setup-bun. - With no --job, the census reads every `test shard i/n` job of a run, or the `test` job of a run that has no shard job (a run from before the split, whose `test` job ran the suite). - --job accepts `/` and a `*` pattern, so the documented `--job "test shard 1/4"` and `--job "test shard *"` work; before, both were refused as an invalid argument. - The workflow lookup matches a job by its `name:` template, so `test shard 2/4` finds the `test-shard` matrix job's Bun pin. - The report prints a closed `warning:` line (also on stderr, and in --json) when no job matched or a selected job shows no Bun setup in its log or workflow block. - docs/security/env-secrets-threat-model.md and docs/reference/shared-host-lifecycle.md now say the tests run in a `test shard i/4` job and that `test` is the fan-in. Refs HACK-1424 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n bound and Loki hint wiring - Pin NATIVE_EXIT_DRAIN_BOUND_MS at its documented 5 s floor and above the late-writer delay, and assert the held-descendant cases (runtime client and foreground graph owner) keep reading for the whole production bound, so a smaller constant or default no longer passes. - Add late-closed-code cases for the one-off and recovery (selection and cleanup) bound drains. - Add CLI cases that carry --pretty, --query and --until into the empty-Loki hint through src/commands/project.ts. - `hack global logs-reset` now says it also deletes the Alloy read positions volume in its prompt and summary; regenerate docs/reference/cli.md. Refs HACK-1425 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…urate gitignore entry, no-TTY Tailscale test) - `hack up` without a project now prints the closed `E_PROJECT_NOT_FOUND: ...` line like down, restart, ps, logs and open. - ensureGitignoreEntry reads each line as git does (trailing CR and spaces dropped, leading whitespace kept), so an indented `.hack.secret.key` no longer counts as the entry and is no longer refused as "re-included"; the exact entry is appended instead. - tests: no-TTY guard test for "Turn on Tailscale?", a named warm-up for the cold transpiler cache in that file, the ACL test's setup moved inside its try, and the paired mode-000 `.hack` fixture without `.hack/.internal` restored. Refs HACK-1426 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ad of refusing it as a symlink An unlocked read of a `.hack/.env*` file (the preflight in `upsertDotEnvValue`/`removeDotEnvKey`, and every resolver) compared the inode seen by `lstat` with the inode it then opened. A concurrent writer's atomic rename landing between the two made the reader exit 1 with the "symlink or not a regular file" refusal, although the path only ever held regular files. `readReplaceablePrivateFile` now starts the read again when both entries are regular files (at most `REPLACEABLE_READ_ATTEMPTS`), and still refuses a symlink or non-regular entry at once and a path replaced on every attempt. This was the cause of the intermittent `project-env-layer-lock` legacy dotenv failure; #435's layer lock was already in place, so no update was lost. Also fix two test-only flakes from HACK-1422: - native-runtime-client: wait for the keeper's completion text, not for the file's existence; the keeper now opens the empty-file window every run. - xattr-owner: give the in-process durable store cases a named 30 s budget instead of Bun's 5 s default; they wait on no timer. Refs HACK-1422 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ier deadline The same-birth root replacement case still timed out at 30 s on a host at load average 45-95 on 18 CPUs. Its cost is a fixed amount of store file work (about 19k lstat, 13k realpath and 4.5k open calls in its second `up`, the same on every run), so its wall time follows host load. A larger budget alone was not enough: the fake carrier's fixed 60 s deadline then expired first and the case failed with the storage witness refusal instead of the asserted E_NATIVE_COMPOSE_UNCERTAIN. The fake carrier's lifetime is now twice the store case budget, so a slow host can only fail a case as a clean Bun timeout. The budget is 180 s, a hang guard rather than a speed assertion. Refs HACK-1422 Co-Authored-By: Claude Opus 5.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.
Integration gate for merge batch b55: origin/next + #480 (HACK-1422) + #475 (HACK-1423) + #476 (HACK-1424) + #478 (HACK-1425) + #479 (HACK-1426). Tree aeeb0433. Closed after the batch squashes.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.