Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 18 additions & 33 deletions .github/scripts/check-open-items-fragmented-parity.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,57 +2,42 @@
set -euo pipefail

report="${REPORT_PATH:-docs/reports/fragemented/OPEN_ITEMS_VALIDATION_2026-02-22.md}"
issue_id="${ISSUE_ID:-258}"
if [[ ! -f "$report" ]]; then
echo "[FAIL] Missing report: $report"
exit 1
fi

section="$(
awk -v issue_id="$issue_id" '
BEGIN {
in_target = 0
target = "^- (Issue|PR) #" issue_id "([[:space:]]|$)"
boundary = "^- (Issue|PR) #[0-9]+([[:space:]]|$)"
}
$0 ~ target {
in_target = 1
print
next
}
in_target && $0 ~ boundary {
section="$(awk '
BEGIN { in_issue=0 }
/^- Issue #258/ { in_issue=1 }
in_issue {
if ($0 ~ /^- (Issue|PR) #[0-9]+/ && $0 !~ /^- Issue #258/) {
exit
}
in_target {
print
}
' "$report"
)"
print
}
' "$report")"

if [[ -z "$section" ]]; then
echo "[FAIL] $report missing Issue #$issue_id section."
echo "[FAIL] $report missing Issue #258 section."
exit 1
fi

status_line="$(
printf '%s\n' "$section" \
| rg -i -m1 '^\s*-\s*(#status|status)\s*:\s*.+$' \
|| true
)"
status_line="$(echo "$section" | awk 'BEGIN{IGNORECASE=1} /- (Status|State):/{print; exit}')"
if [[ -z "$status_line" ]]; then
echo "[FAIL] $report missing explicit status mapping for #$issue_id (expected '- Status:' or '- #status:')."
echo "[FAIL] $report missing explicit status line for #258 (expected '- Status:' or '- State:')."
exit 1
fi

status_value="$(printf '%s\n' "$status_line" \
| sed -E 's/^\s*-\s*(#status|status)\s*:\s*//I' \
| tr '[:upper:]' '[:lower:]')"
if printf '%s\n' "$status_value" | rg -q '\b(partial|partially|blocked|pending|todo|not implemented)\b'; then
echo "[FAIL] $report status for #$issue_id is not implemented: $status_value"
status_lower="$(echo "$status_line" | tr '[:upper:]' '[:lower:]')"

if echo "$status_lower" | rg -q "\b(partial|partially|not implemented|todo|to-do|pending|wip|in progress|open|blocked|backlog)\b"; then
echo "[FAIL] $report has non-implemented status for #258: $status_line"
exit 1
fi

if ! printf '%s\n' "$status_value" | rg -q '\b(implemented|done|fixed|resolved|complete|completed)\b'; then
echo "[FAIL] $report status for #$issue_id is not recognized as implemented: $status_value"
if ! echo "$status_lower" | rg -q "\b(implemented|resolved|complete|completed|closed|done|fixed|landed|shipped)\b"; then
echo "[FAIL] $report has unrecognized completion status for #258: $status_line"
exit 1
fi

Expand Down
78 changes: 52 additions & 26 deletions .github/scripts/tests/check-open-items-fragmented-parity-test.sh
Original file line number Diff line number Diff line change
@@ -1,42 +1,68 @@
#!/usr/bin/env bash
set -euo pipefail

repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
script_path="$repo_root/.github/scripts/check-open-items-fragmented-parity.sh"
fixtures_dir="$repo_root/.github/scripts/tests/fixtures/open-items-parity"

tmp_dir="$(mktemp -d)"
cleanup() {
rm -rf "$tmp_dir"
}
trap cleanup EXIT
script_under_test="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/check-open-items-fragmented-parity.sh"

run_case() {
local name="$1"
local fixture="$2"
local should_pass="$3"
local label="$1"
local expect_exit="$2"
local expected_text="$3"
local report_file="$4"

local output status
output=""
status=0

local out_file="$tmp_dir/$name.out"
set +e
REPORT_PATH="$fixtures_dir/$fixture" ISSUE_ID=258 "$script_path" >"$out_file" 2>&1
local status=$?
output="$(REPORT_PATH="$report_file" "$script_under_test" 2>&1)"
status=$?
set -e

if [[ "$should_pass" == "pass" && $status -ne 0 ]]; then
echo "[FAIL] $name: expected pass"
cat "$out_file"
printf '===== %s =====\n' "$label"
echo "$output"

if [[ "$status" -ne "$expect_exit" ]]; then
echo "[FAIL] $label: expected exit $expect_exit, got $status"
exit 1
fi
if [[ "$should_pass" == "fail" && $status -eq 0 ]]; then
echo "[FAIL] $name: expected fail"
cat "$out_file"

if ! echo "$output" | rg -q "$expected_text"; then
echo "[FAIL] $label: expected output to contain '$expected_text'"
exit 1
fi
echo "[OK] $name"
}

run_case "passes_with_status_implemented" "pass-status-implemented.md" "pass"
run_case "passes_with_hash_status_done" "pass-hash-status-done.md" "pass"
run_case "fails_with_partial_status" "fail-status-partial.md" "fail"
run_case "fails_without_status_mapping" "fail-missing-status.md" "fail"
make_report() {
local file="$1"
local status_line="$2"

cat >"$file" <<EOF_REPORT
# Open Items Validation

## Already Implemented
- Issue #258 \`Support variant fallback for reasoning_effort in codex models\`
- $status_line
- Current translators map top-level \`variant\` to Codex reasoning effort when \`reasoning.effort\` is absent.

## Evidence (commit/file refs)
- Issue #258 implemented:
- Chat-completions translator maps \`variant\` fallback: pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_request.go:56.
EOF_REPORT
}

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

pass_report="$tmpdir/pass.md"
make_report "$pass_report" "Status: Resolved and shipped on current main."
run_case "pass on resolved/shipped status" 0 "\[OK\] fragmented open-items report parity checks passed" "$pass_report"

fail_partial_report="$tmpdir/fail-partial.md"
make_report "$fail_partial_report" "Status: Partial pending final verification."
run_case "fail on partial/pending status" 1 "non-implemented status" "$fail_partial_report"

fail_unknown_report="$tmpdir/fail-unknown.md"
make_report "$fail_unknown_report" "Status: Investigating in QA."
run_case "fail on unknown status mapping" 1 "unrecognized completion status" "$fail_unknown_report"

echo "[OK] check-open-items-fragmented-parity script test suite passed"
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ COPY . .
ARG VERSION=dev
ARG COMMIT=none
ARG BUILD_DATE=unknown
ARG TARGETOS=linux
ARG TARGETARCH

RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -X 'main.Version=${VERSION}-++' -X 'main.Commit=${COMMIT}' -X 'main.BuildDate=${BUILD_DATE}'" -o ./cliproxyapi++ ./cmd/server/
RUN arch="${TARGETARCH:-$(go env GOARCH)}" && CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH="${arch}" go build -ldflags="-s -w -X 'main.Version=${VERSION}-++' -X 'main.Commit=${COMMIT}' -X 'main.BuildDate=${BUILD_DATE}'" -o ./cliproxyapi++ ./cmd/server/

FROM alpine:3.22.0

Expand Down Expand Up @@ -52,4 +54,4 @@ RUN cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo "${TZ}" > /etc/timezone

# Use entrypoint script for out-of-the-box deployment
ENTRYPOINT ["/CLIProxyAPI/docker-init.sh"]
CMD []
CMD []
Loading
Loading