Skip to content

⚡ Bolt: 민감한 데이터 스크러버(Redaction) 루프 O(N) 성능 최적화 - #1154

Open
seonghobae wants to merge 28 commits into
mainfrom
bolt-optimize-redact-log-5914692121285429409
Open

⚡ Bolt: 민감한 데이터 스크러버(Redaction) 루프 O(N) 성능 최적화#1154
seonghobae wants to merge 28 commits into
mainfrom
bolt-optimize-redact-log-5914692121285429409

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

💡 What:
scripts/ci/redact_sensitive_log.py_redact_assignments 함수 내에서 문자열을 검색할 때 수동으로 한 글자씩 확인하며 반복하던 비효율적인 로직을 SENSITIVE_KEY_RE.search() 메서드를 이용해 C언어 수준의 속도로 빠르게 이동하고 건너뛰는 로직으로 최적화했습니다.

🎯 Why:
기존 방식에서는 긴 로그 텍스트를 처리할 때 각 글자 인덱스마다 파이썬 레벨의 함수를 호출하여 성능이 저하되는 O(N) 비용 문제가 발생했습니다.

📊 Impact:
벤치마크 상에서 큰 로그 텍스트를 파싱하는 시간이 ~0.76초에서 ~0.10초로 감소하여 스크립트 실행 시간이 대폭 향상됩니다.

🔬 Measurement:
PYTHONPATH=$(pwd) python3 -m pytest tests/test_opencode_security_boundaries.py를 실행하여 기존의 보안 마스킹 검증 테스트가 문제없이 동일하게 통과하는 것을 확인할 수 있습니다.


PR created automatically by Jules for task 5914692121285429409 started by @seonghobae


Open in Devin Review

Summary by CodeRabbit

  • 버그 수정

    • 난독화된 문자와 다양한 인증 키 형식이 포함된 민감한 정보도 로그에서 더욱 정확하게 감지하고 가립니다.
    • 잘못된 형식의 키-값 입력이 부적절하게 처리되지 않도록 보완했습니다.
    • 특정 인증 토큰 환경에서 승인되지 않은 브랜치 변경이 실행되지 않도록 안전성을 강화했습니다.
  • 성능 개선

    • 대용량 문자열의 민감 정보 탐지 성능을 개선했습니다.
  • 테스트

    • 민감한 값 처리와 브랜치 변경 제한에 대한 회귀 테스트를 추가했습니다.

@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@seonghobae, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 28 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a7457a0c-2293-4724-976f-d90e13f6f5bb

📥 Commits

Reviewing files that changed from the base of the PR and between ba8f319 and 2e2239b.

📒 Files selected for processing (4)
  • scripts/ci/redact_sensitive_log.py
  • tests/test_noema_review_handoff.py
  • tests/test_opencode_security_boundaries.py
  • tests/test_pr_review_merge_scheduler.py
📝 Walkthrough

Walkthrough

민감한 키 탐지 패턴을 확장하고 정규식 기반 할당문 스캔을 적용했습니다. GitHub Token 환경의 브랜치 mutation 검증을 추가했습니다. CI 의존성 해시와 초기화 docstring도 갱신했습니다.

Changes

민감 데이터 마스킹

Layer / File(s) Summary
민감 키 탐지 및 할당문 마스킹
scripts/ci/redact_sensitive_log.py, .jules/bolt.md, tests/test_opencode_security_boundaries.py
SENSITIVE_KEY_RE가 난독화된 키와 추가 인증 키 변형을 탐지합니다. _redact_assignments는 정규식 검색으로 후보를 찾고 유효한 할당문만 마스킹합니다. 회귀 테스트는 하이픈 포함 키와 잘못된 시작 위치를 검증합니다.

PR 리뷰 병합 스케줄러 검증

Layer / File(s) Summary
GitHub Token mutation 검증
scripts/ci/pr_review_merge_scheduler.py, tests/test_pr_review_merge_scheduler.py
GitHub Token 환경에서 workflow 미시작과 브랜치 mutation 보류 동작을 검증합니다. 관련 테스트 설명과 guidance 검증 흐름을 정리했습니다.

CI 유지보수 업데이트

Layer / File(s) Summary
CI 의존성 및 초기화 문서 갱신
requirements-pip-audit-ci-hashes.txt, scripts/ci/organization_commercial_readiness_loop.py
pip 버전을 26.2.1로 갱신하고 SHA-256 해시를 교체했습니다. GitHubClient.__init__ 설명을 추가했습니다. main()SystemExit 진입점은 유지됩니다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Merge Risk: 🔴 Critical · up to ba8f3

The optimization can leave secrets unmasked when sensitive keys contain allowed separators, exposing credentials in CI diagnostics; malformed long inputs may also cause severe performance regression, and a REST mergeability test no longer verifies token withholding. These current-head correctness, security, and performance issues require fixes before merge.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 민감한 데이터 스크러버의 Redaction 루프 성능 최적화라는 PR의 주요 변경 사항을 정확하고 간결하게 설명합니다.
Docstring Coverage ✅ Passed Docstring coverage is 87.50% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 5 files. (2 skipped: 2 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bolt-optimize-redact-log-5914692121285429409

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head review request for PR #1154:

  • Exact head: 7c621efa... (full SHA verified immediately after push).
  • Fixed the malformed sensitive-key path so repeated failed candidates are skipped as one key token instead of retried character-by-character; bounded fallback preserves quoted and digit-prefixed compatibility.
  • Added regression coverage for masking, malformed-key scan count, quote boundaries, and digit-prefixed keys.
  • Local evidence: targeted redaction/sanitization tests 7 passed; full suite 1218 passed, 16 subtests passed; Ruff, compileall, and diff-check passed.

Please provide a fresh independent review for this exact head. Protected current-head checks and qualifying approval remain required before merge.

@google-labs-jules

Copy link
Copy Markdown

Current-head review request for PR #1154:

  • Exact head: 7c621efa... (full SHA verified immediately after push).
  • Fixed the malformed sensitive-key path so repeated failed candidates are skipped as one key token instead of retried character-by-character; bounded fallback preserves quoted and digit-prefixed compatibility.
  • Added regression coverage for masking, malformed-key scan count, quote boundaries, and digit-prefixed keys.
  • Local evidence: targeted redaction/sanitization tests 7 passed; full suite 1218 passed, 16 subtests passed; Ruff, compileall, and diff-check passed.

Please provide a fresh independent review for this exact head. Protected current-head checks and qualifying approval remain required before merge.

Acknowledged.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head review request for a5d545d48a48773561b700a7acc491425c6675cc. The remote head had reverted the intermediate malformed-key guard, so this commit reapplies the bounded skip and restores regression coverage.

  • python -m pytest -q tests/test_redact_sensitive_log.py tests/test_opencode_security_boundaries.py: 38 passed
  • python -m pytest -q: 1218 passed, 16 subtests passed
  • ruff check scripts/ci/redact_sensitive_log.py tests/test_redact_sensitive_log.py: passed
  • ruff format --check: passed
  • python -m compileall -q scripts/ci/redact_sensitive_log.py: passed
  • randomized equivalence against base _redact_assignments: 20,005 inputs passed
  • 50,000-token malformed-key benchmark: 0.0486s

The source now attempts each malformed sensitive token once, advances past its full key token, and preserves quoted/digit-prefixed compatibility. Please provide a fresh independent review for this exact head; protected checks and qualifying approval remain required.

@google-labs-jules

Copy link
Copy Markdown

Current-head review request for a5d545d48a48773561b700a7acc491425c6675cc. The remote head had reverted the intermediate malformed-key guard, so this commit reapplies the bounded skip and restores regression coverage.

  • python -m pytest -q tests/test_redact_sensitive_log.py tests/test_opencode_security_boundaries.py: 38 passed
  • python -m pytest -q: 1218 passed, 16 subtests passed
  • ruff check scripts/ci/redact_sensitive_log.py tests/test_redact_sensitive_log.py: passed
  • ruff format --check: passed
  • python -m compileall -q scripts/ci/redact_sensitive_log.py: passed
  • randomized equivalence against base _redact_assignments: 20,005 inputs passed
  • 50,000-token malformed-key benchmark: 0.0486s

The source now attempts each malformed sensitive token once, advances past its full key token, and preserves quoted/digit-prefixed compatibility. Please provide a fresh independent review for this exact head; protected checks and qualifying approval remain required.

Acknowledged.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head correction for d691c68f97c7ab9ad459a5ea71de1b7077aa0bc5. Automation had again advanced the branch to 348ce0ff and removed the malformed-key guard and regression test; this commit restores both.

  • python -m pytest -q tests/test_redact_sensitive_log.py tests/test_opencode_security_boundaries.py: 38 passed
  • Ruff, format check, compileall, and git diff check: passed
  • The bounded scanner now attempts each malformed sensitive token once and advances past the complete key token.

Please review only this exact head. Protected checks and qualifying independent approval remain required.

@google-labs-jules

Copy link
Copy Markdown

Current-head correction for d691c68f97c7ab9ad459a5ea71de1b7077aa0bc5. Automation had again advanced the branch to 348ce0ff and removed the malformed-key guard and regression test; this commit restores both.

  • python -m pytest -q tests/test_redact_sensitive_log.py tests/test_opencode_security_boundaries.py: 38 passed
  • Ruff, format check, compileall, and git diff check: passed
  • The bounded scanner now attempts each malformed sensitive token once and advances past the complete key token.

Please review only this exact head. Protected checks and qualifying independent approval remain required.

Acknowledged.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Correction: current-head verification for d691c68f97c7ab9ad459a5ea71de1b7077aa0bc5 (base bbedc1a51ec1a2421f129955c629b3cd0507a4ec).

  • redaction/noema/scheduler suite: 129 passed
  • compileall and git diff --check: passed

The scanner uses bounded regex jumps and preserves malformed-key fail-closed behavior. Protected checks and qualifying review remain required; no bypass used.

@google-labs-jules

Copy link
Copy Markdown

Current-head verification for (base ).\n\n- redaction/noema/scheduler suite: 129 passed\n- compileall and : passed\n\nThe scanner uses bounded regex jumps and preserves malformed-key fail-closed behavior. Protected checks and qualifying review remain required; no bypass used.

Acknowledged.

@google-labs-jules

Copy link
Copy Markdown

Correction: current-head verification for d691c68f97c7ab9ad459a5ea71de1b7077aa0bc5 (base bbedc1a51ec1a2421f129955c629b3cd0507a4ec).

  • redaction/noema/scheduler suite: 129 passed
  • compileall and git diff --check: passed

The scanner uses bounded regex jumps and preserves malformed-key fail-closed behavior. Protected checks and qualifying review remain required; no bypass used.

Acknowledged.

@seonghobae
seonghobae force-pushed the bolt-optimize-redact-log-5914692121285429409 branch from 3e6636d to b1d7259 Compare August 19, 2026 23:49
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head verification after rebasing onto c47bee591c3d95bd305f2130833ed3a4780d2d1d (b1d72590): focused redaction/security tests passed (64 passed across tests/test_redact_sensitive_log.py, tests/test_opencode_security_boundaries.py, and tests/test_noema_review_handoff.py); compileall and git diff --check passed. Hosted checks/review remain to be re-evaluated at this exact head.

@google-labs-jules

Copy link
Copy Markdown

Current-head verification after rebasing onto c47bee591c3d95bd305f2130833ed3a4780d2d1d (b1d72590): focused redaction/security tests passed (64 passed across tests/test_redact_sensitive_log.py, tests/test_opencode_security_boundaries.py, and tests/test_noema_review_handoff.py); compileall and git diff --check passed. Hosted checks/review remain to be re-evaluated at this exact head.

Acknowledged.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent Review exact current head b1d72590 against main@c47bee59. Bind the verdict to this head only; inspect redaction parser correctness, malformed-key bounds, secret preservation, focused/full tests, and hosted checks. Do not reuse predecessor evidence.

seonghobae and others added 6 commits August 20, 2026 13:04
`scripts/ci/redact_sensitive_log.py` 파일의 `_redact_assignments` 함수에서
민감한 문자열을 마스킹할 때 문자 단위로 스캔하던 루프를 `SENSITIVE_KEY_RE.search(text, cursor)`로
개선하여 O(N) 반복 비용을 제거했습니다.
벤치마크 결과, 긴 로그를 마스킹하는 작업의 속도가 ~0.76초에서 ~0.10초로 대폭 향상되었습니다.
`scripts/ci/redact_sensitive_log.py` 파일의 `_redact_assignments` 함수에서
민감한 문자열을 마스킹할 때 문자 단위로 스캔하던 루프를 `SENSITIVE_KEY_RE.search(text, cursor)`로
개선하여 O(N) 반복 비용을 제거했습니다.
벤치마크 결과, 긴 로그를 마스킹하는 작업의 속도가 ~0.76초에서 ~0.10초로 대폭 향상되었습니다.
`scripts/ci/redact_sensitive_log.py` 파일의 `_redact_assignments` 함수에서
민감한 문자열을 마스킹할 때 문자 단위로 스캔하던 루프를 `SENSITIVE_KEY_RE.search(text, cursor)`로
개선하여 O(N) 반복 비용을 제거했습니다.
벤치마크 결과, 긴 로그를 마스킹하는 작업의 속도가 ~0.76초에서 ~0.10초로 대폭 향상되었습니다.
@seonghobae
seonghobae force-pushed the bolt-optimize-redact-log-5914692121285429409 branch from b1d7259 to de6a4df Compare August 20, 2026 04:05
@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent Review exact current head de6a4df against main@2cce96f8. Rebased the minimal redaction scanner optimization and its regression evidence onto current main; malformed sensitive keys remain fail-safe and secret text is preserved outside assignments. Verified: 174 redaction/security/scheduler tests, compileall, interrogate, ruff, and git diff --check passed.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-current-head review loop: live head de6a4df was rechecked without mutating the remote branch. Redaction/security/noema/scheduler suite: 191 passed; differential redaction fuzz: 2,000 cases passed; interrogate, compileall, and diff-check passed. The optimized scanner preserves the prior parser output while skipping malformed key runs. Hosted Checks are still regenerating; keep the PR unmerged until terminal protected checks and an independent approval exist.

@google-labs-jules

Copy link
Copy Markdown

Exact-current-head review loop: live head de6a4df was rechecked without mutating the remote branch. Redaction/security/noema/scheduler suite: 191 passed; differential redaction fuzz: 2,000 cases passed; interrogate, compileall, and diff-check passed. The optimized scanner preserves the prior parser output while skipping malformed key runs. Hosted Checks are still regenerating; keep the PR unmerged until terminal protected checks and an independent approval exist.

Acknowledged.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Integrated current main normally at 48dcca4. Redaction change remains scoped to the Bolt marker, implementation, and regression tests; 38 focused tests, actionlint, ruff, and diff checks passed. Re-review this exact HEAD.

@OpenCode review this exact HEAD and report only current-head findings.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent review this exact current HEAD. Use the current commit SHA, current Checks, and current diff; do not reuse prior approvals or prior-head evidence.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head verification and review disposition

  • Exact head: db6f6d9d2554d624ab5edcf5a7328c815afbfca4
  • Exact base: 731af58e954901c4f1cc853231c592abb1eaf617
  • Local result: 1291 passed, 16 subtests passed; statement and branch coverage 100% (8136/8136, 3154/3154); Ruff, compileall, actionlint, and git diff --check passed.
  • Scope: the redaction optimization, its regression tests, and the restored workflow-starting head-mutation guard contract.

Current-head review dispositions:

  • The quoted/obfuscated-key coverage finding is fixed with regression cases for quoted values and parser edge guards.
  • The multi-word secret redaction finding is fixed by restoring delimiter-bounded and quoted-value matching, with regression assertions.
  • The workflow-starting credential guard analysis is fixed: the guard, summary guidance, tests, documentation, and changelog are present on this head.
  • The search-scan equivalence note has no source finding; the existing pathological O(N²) note is a known pre-existing ceiling; the broader obfuscation-aware matching is an intentional safe-direction redaction change.

All current review threads have been read and resolved after these dispositions. Hosted Checks for this exact head are regenerating and currently queued; no merge is requested until terminal required Checks and a qualifying independent approval exist. Please review only this exact head and bind any verdict to this SHA.

@google-labs-jules

Copy link
Copy Markdown

Current-head verification and review disposition

  • Exact head: db6f6d9d2554d624ab5edcf5a7328c815afbfca4
  • Exact base: 731af58e954901c4f1cc853231c592abb1eaf617
  • Local result: 1291 passed, 16 subtests passed; statement and branch coverage 100% (8136/8136, 3154/3154); Ruff, compileall, actionlint, and git diff --check passed.
  • Scope: the redaction optimization, its regression tests, and the restored workflow-starting head-mutation guard contract.

Current-head review dispositions:

  • The quoted/obfuscated-key coverage finding is fixed with regression cases for quoted values and parser edge guards.
  • The multi-word secret redaction finding is fixed by restoring delimiter-bounded and quoted-value matching, with regression assertions.
  • The workflow-starting credential guard analysis is fixed: the guard, summary guidance, tests, documentation, and changelog are present on this head.
  • The search-scan equivalence note has no source finding; the existing pathological O(N²) note is a known pre-existing ceiling; the broader obfuscation-aware matching is an intentional safe-direction redaction change.

All current review threads have been read and resolved after these dispositions. Hosted Checks for this exact head are regenerating and currently queued; no merge is requested until terminal required Checks and a qualifying independent approval exist. Please review only this exact head and bind any verdict to this SHA.

Acknowledged.

devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 21, 2026 16:00
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head shared security gate triage

  • Exact head: db6f6d9d2554d624ab5edcf5a7328c815afbfca4
  • The current completed pip-audit failure and lock content both point to pip==26.1.2, affected by PYSEC-2026-3721, fixed in 26.2.
  • This is a source/security failure, not an Actions or runner deadlock. Canonical remediation is PR fix(osv): preserve immutable direct-source provenance #1158, which pins the direct audit requirement and hash lock to pip==26.2.1.
  • Do not reuse this predecessor failure as current-head evidence after the shared lock is merged; rerun this PR from a fresh exact head.

Decision: WAIT_AND_REMEDIATE pending the protected shared security fix and fresh exact-head Checks. No bypass or merge performed.

@seonghobae
seonghobae enabled auto-merge (squash) August 21, 2026 16:43
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head restack update

  • Exact head: 06f317b63316f8cb18017894337078fab178d068
  • Exact base: dd58a88391e44a32fb399f7407f508d8e73cc1c7
  • The branch was updated through GitHub normal update-branch; predecessor head evidence is discarded.
  • New hosted state: 16 checks queued; no completed source failure is currently present.
  • Auto-merge is enabled on the protected normal path. No exact-head approval is present, so decision remains WAIT_AND_REMEDIATE; no bypass or force push.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head maintenance audit

  • Repository: ContextualWisdomLab/.github
  • Pull request: ⚡ Bolt: 민감한 데이터 스크러버(Redaction) 루프 O(N) 성능 최적화 #1154
  • Exact head SHA: 06f317b63316f8cb18017894337078fab178d068
  • Exact base SHA: dd58a88391e44a32fb399f7407f508d8e73cc1c7
  • Current diff remains redaction-loop performance/security hardening plus the restored workflow-starting mutation guard; the merge commit also contains the current main acknowledgement-retry repair.
  • Valid findings were fixed in the branch ancestry: quoted/multi-word secret scrubbing, quoted-path coverage, and workflow-starting credential protection. The trailing-comma observation was informational and is now dispositioned/resolved.
  • Unresolved review threads at audit time: 0
  • Local verification: 1,291 tests passed; 16 subtests passed; statement coverage 8,140/8,140 (100%); branch coverage 3,154/3,154 (100%); Ruff, compileall, and git diff --check passed.
  • Docstring gate: the exact tree reports 99.9% because the inherited organization_commercial_readiness_loop.GitHubClient.__init__ lacks a docstring; this is outside this PR's diff and is separately targeted by docs: complete coordinator client docstring #1189. No false 100% claim is made.
  • Hosted state: no completed source failure observed; required checks remain queued or in progress, and no qualifying approval is present.
  • Merge decision: normal squash auto-merge remains enabled; no bypass, direct protected-branch push, force-push, or approval substitution used.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head verification update

  • Exact head: 6b5428446941c13e3cef02c02646882666f2f509
  • Exact base: fce028b4c3bf8e2e5e4819c1c5622e90cfa6ab39
  • Normal branch update onto current main completed; predecessor evidence is discarded.
  • Review threads: 0 unresolved; no qualifying approval is currently recorded.
  • Local exact-head verification: 150 redaction/scheduler tests passed; compileall, interrogate 100%, and diff check passed.
  • Hosted required Checks are queued/in progress; no current source failure is evidenced.
  • Decision: WAIT_AND_REMEDIATE; normal squash auto-merge remains enabled; no force merge.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head repair pushed as 765270b from 6b54284.

Root cause: the performance PR retained pip 26.1.2 in the hashed audit lock, reproducing the known PYSEC-2026-3721 failure. Updated only the lock to pip 26.2.1 with exact hashes.

Verification: 150 focused security and scheduler tests passed; pip-audit reported no known vulnerabilities; git diff check passed. Hosted checks and exact-head independent approval must be re-evaluated for 765270b. No bypass or force push was used.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head follow-up: pushed ba8f319e to restore the repository hard gate to 100% docstrings. The shared coordinator GitHubClient.__init__ lacked its required docstring on this branch; it is now documented. Redaction/scheduler/queue tests passed (202 tests), compileall passed, interrogate is 100%, and git diff --check passed. All prior substantive threads are resolved or outdated.

coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 21, 2026 19:43
@seonghobae
seonghobae enabled auto-merge (squash) August 21, 2026 19:58

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

Open in Devin Review

Comment on lines +66 to +68
while cursor < len(text) and (
text[cursor] in KEY_CHARS or text[cursor] in " \t"
):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Space/tab in key parsing extends redaction to prose

_consume_sensitive_assignment now consumes spaces and tabs (redact_sensitive_log.py:66-68), so any word run containing a sensitive term before a : or = becomes one key and its value is masked. A benign line like token expired at: 2026-01-01 loses its value. The added tests (api key=secret, t o k e n=secret, token : visible) require this, so it is a deliberate diagnostic-fidelity trade-off, not a defect.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@opencode-agent
opencode-agent Bot disabled auto-merge August 21, 2026 20:14
@opencode-agent opencode-agent Bot added area: performance Performance, resource use, scalability, or benchmarking priority: medium Normal-priority or P2 work status: needs-update Pull-request branch is behind its current base type: maintenance Maintenance, build, dependency, or operational upkeep labels Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: performance Performance, resource use, scalability, or benchmarking priority: medium Normal-priority or P2 work status: needs-update Pull-request branch is behind its current base type: maintenance Maintenance, build, dependency, or operational upkeep

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant