d817c37652
gates / consistency-and-conventions (push) Successful in 26s
17-point code-level audit executed via Explorer->Architect->Builder->Tester->Reviewer;
Reviewer accepted (APPROVE_WITH_NOTES; 3 block-list items resolved):
- security: telegram sender-owner AND-gate + TELEGRAM_OWNER_ID, matrix
MATRIX_ROOM_ID fail-closed, gpg --passphrase-fd 3 (no argv secret),
/dev/tcp positional-arg form (checkport/smb-client/share-lib/NET_PROBE),
eval deny-by-default + --no-command-execution carried by both chat bridges,
tty-gated --trust; config/{telegram,matrix}.env reference templates
- ai: all ExecStart flags validated against installed llama.cpp
(requested->error, default->omit+warn, CONFIG_REQUESTED_FLAGS); single-file
hf download failure rc=1 + no .hf-meta; LLAMACPP_HOST coherent;
POS_SUBCMDS + metadata gaps closed
- tooling: lint-conventions Bash-native rewrite (~24-30x faster, rules and
output byte-identical, :num restored); pos system uninstall covers all 12
libs + scale-tail + flags dir + systemd user units (|| true) + plugin
markers; anchored .bash_completion/.bashrc removal replaces sed -i '/pos/d'
- config: canonical load_env_file in lib/config-ui.sh (CRLF strip, env-wins,
XDG, LOADED_ENV_KEYS); 9 tools migrated; entertainment-lib collapsed to
wrappers; docker-compose deliberately unmigrated (source semantics)
- tests: first committed regression suite — tests/run-tests.sh zero-dep
runner + make test; 12 files / 179 checks / 0 skip / ~52s; hard skip
contract; systemd-analyze verify on generated unit PASS
Verified: make gen idempotent; make check green; make lint 0 FAIL, 0 WARN;
make test green; bash -n clean; git diff --check clean. Audit deliverables +
agent reports + AGENT_TODO Done entry included.
59 lines
2.1 KiB
Bash
59 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
# t-gen-docs-drift.sh — generated-docs drift gate:
|
|
# - `make gen` on a pristine tracked tree must be idempotent: running it
|
|
# twice produces zero diff (CI's `git diff --exit-code` style check),
|
|
# - the very first `make gen` on a baseline must succeed.
|
|
# Runs in a temp tracked-file copy (git ls-files) so the dirty working tree
|
|
# (parallel tracks) cannot influence the result.
|
|
|
|
run_test() {
|
|
require_cmd git "gen-docs drift" || return 0
|
|
require_cmd make "gen-docs drift" || return 0
|
|
require_cmd timeout "gen-docs drift" || return 0
|
|
|
|
local sandbox copy
|
|
sandbox="$(mksandbox gen-docs-drift)"
|
|
copy="$sandbox/tree"
|
|
tracked_tree_copy "$copy" || { skip_case "gen-docs drift" "tracked tree copy failed"; return 0; }
|
|
|
|
(
|
|
cd "$copy"
|
|
git init -q
|
|
git config user.email test@example.invalid
|
|
git config user.name "test"
|
|
git add -A
|
|
git commit -qm base
|
|
|
|
timeout 120 make gen >"$sandbox/gen1.out" 2>&1
|
|
local rc1=$?
|
|
git add -A
|
|
git commit -qm "after gen 1"
|
|
|
|
timeout 120 make gen >"$sandbox/gen2.out" 2>&1
|
|
local rc2=$?
|
|
local dirty after2
|
|
dirty="$(git status --porcelain)"
|
|
git diff --exit-code >/dev/null 2>&1
|
|
local diffrc=$?
|
|
printf '%s %s\n' "$rc1" "$rc2" > "$sandbox/make-rcs"
|
|
printf '%s\n' "$dirty" > "$sandbox/dirty"
|
|
printf '%s\n' "$diffrc" > "$sandbox/diffrc"
|
|
)
|
|
local ok=no
|
|
[ -f "$sandbox/make-rcs" ] && ok=yes
|
|
if [ "$ok" = "no" ]; then
|
|
printf ' SKIP gen-docs drift (git/make unavailable in sandbox)\n'
|
|
return 0
|
|
fi
|
|
|
|
local make_rcs dirty diffrc
|
|
make_rcs="$(cat "$sandbox/make-rcs")"
|
|
dirty="$(cat "$sandbox/dirty")"
|
|
diffrc="$(cat "$sandbox/diffrc")"
|
|
local rc1="${make_rcs%% *}" rc2="${make_rcs##* }"
|
|
check_rc "first make gen succeeds" 0 "$rc1"
|
|
check_rc "second make gen succeeds (idempotence run)" 0 "$rc2"
|
|
check_eq "no dirty files after second gen" "" "$dirty"
|
|
check_rc "git diff --exit-code clean after second gen" 0 "$diffrc"
|
|
} |