Skip to content

fix(figma): retain style references and component sets - #1146

Draft
seonghobae wants to merge 23 commits into
mainfrom
codex/pr1043-current-main-successor
Draft

fix(figma): retain style references and component sets#1146
seonghobae wants to merge 23 commits into
mainfrom
codex/pr1043-current-main-successor

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Validation

  • python3 -m pytest -q tests/test_figma_rest_file.py tests/test_figma_rest_auth.py (64 passed)
  • branch coverage for both Figma helpers: 100% statements/branches
  • python3 -m compileall -q ...
  • git diff --check

Supersedes #1043. No Copilot token or bypass is used.


Open in Devin Review

@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 12 minutes.

View limit details

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.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 57669b1e-4401-40dd-a2c5-7b2121d5ddb5

📥 Commits

Reviewing files that changed from the base of the PR and between 1cbb6aa and dd305b1.

📒 Files selected for processing (15)
  • .github/workflows/noema-review.yml
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • docs/CWL-MASTER-CONTEXT.md
  • docs/adr/0013-figma-cloud-agent-rest-fallback.md
  • docs/doctoring/figma-cloud-agent-mcp-auth.md
  • docs/doctoring/noema-orchestrator-free-zdr.md
  • scripts/ci/figma_rest_auth.py
  • scripts/ci/figma_rest_file.py
  • scripts/ci/test_strix_quick_gate.sh
  • tests/test_figma_rest_auth.py
  • tests/test_figma_rest_file.py
  • tests/test_required_workflow_queue_contract.py

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

Review request for exact current head 643c924a6f4e6c8a02d1aaedb7ff21b6d9114f30 (current-main successor to #1043): Figma REST file summaries now retain bounded component/component-set catalogs, style metadata, and node style references while excluding access-token-shaped values. Local evidence: 64 focused tests; 100% statements/branches for both Figma helpers; compileall and diff check pass. Please run the protected review/checks for this exact head. No Copilot token, bypass, admin merge, or self-approval.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Correction to the previous review request: the exact current head is 643c924ac4256f028ad30fea628d89d29a14885f. The earlier abbreviated hash was mistyped; use this SHA for all protected checks and review evidence.

Copy link
Copy Markdown
Contributor Author

@opencode-agent Review exact current head 643c924ac4256f028ad30fea628d89d29a14885f. Verify the current-main Figma REST successor preserves bounded component/component-set catalog behavior, style metadata and node style references, token-free output, and fail-closed auth/error boundaries without carrying stale #1043 drift. Focused current-head quality checks are green; submit a formal verdict only against this exact head after remaining hosted checks are authoritative.

github-advanced-security[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current exact head: 37c4bd5. The hosted Semgrep failure was traced to the two fixed-host Figma HTTPSConnection sinks being reported as blocking warnings. Both sinks now carry the exact rule-scoped nosemgrep justification. Fresh local evidence: Semgrep p/default on both files found 0 findings, Figma tests 64 passed, docstrings 100%, compileall and diff checks passed. Re-run hosted checks at this head; no merge claim is made.

@seonghobae
seonghobae force-pushed the codex/pr1043-current-main-successor branch from 37c4bd5 to fc5ab3c Compare August 19, 2026 13:59
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head refresh after merge of #1140: head fc5ab3cdba74bfcfa74661121f01a87c905ca3d1 is rebased onto main bbedc1a51ec1a2421f129955c629b3cd0507a4ec. Fresh local evidence: Semgrep 0 findings; Figma tests 64 passed; interrogate 100%; compileall and diff-check pass. Protected current-head checks are re-running; no merge claim until every required check is green.

@opencode-agent
opencode-agent Bot disabled auto-merge August 19, 2026 14:34
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head refresh: fc5ab3cdba74bfcfa74661121f01a87c905ca3d1 is the exact current head.

The only review feedback is an empty GitHub Advanced Security COMMENTED event on an older commit; there are no actionable review findings. Revalidated the Figma REST auth/file boundary at this exact head: 64 focused tests passed; both helpers have 100% statement/branch coverage (529 statements, 260 branches); interrogate 100%; Semgrep p/default 0 findings; Ruff, compileall, and diff check passed. No self-approval or bypass used. Please perform an independent review against this exact head after protected checks become authoritative.

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode cannot approve yet because required coverage evidence did not pass.

Review outcome

1. HIGH .github/workflows/opencode-review.yml:1 - Coverage evidence did not prove required test/docstring evidence

  • Problem: The required coverage-evidence job result was failure, so OpenCode cannot establish approval sufficiency for this head.

  • Root cause: Automated approval is only valid when the same-head coverage-evidence job proves supported repository test suites passed and configured docstring gates passed or were advisory, or reports not applicable because no supported source files or package manifests exist. Missing, failed, skipped, unavailable, or unsupported-tooling test evidence is a blocker.

  • Fix: Install or configure the repository test/docstring evidence tooling when source files or package manifests exist, rerun the current-head coverage-evidence job, and approve only after it reports success with required evidence or explicit no-source not-applicable evidence.

  • Regression test: Keep the approval branch checking needs.coverage-evidence.result == success before posting APPROVE, and publish REQUEST_CHANGES when coverage-evidence blocker states such as cancelled, skipped, failed, unsupported-tooling, or below-100 evidence are present.

  • Result: REQUEST_CHANGES

  • Reason: coverage-evidence result was failure, so required test/docstring evidence was not proven for current head fc5ab3cdba74bfcfa74661121f01a87c905ca3d1.

  • Head SHA: fc5ab3cdba74bfcfa74661121f01a87c905ca3d1

  • Workflow run: 32283142696

  • Workflow attempt: 1

Coverage evidence

Coverage Decision

  • Result: FAIL
  • Test evidence: not proven passing
  • Docstring evidence: not proven passing when configured
  • Failure count: 1

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Changed file (4 files)"]
  S1 --> I1["repository behavior"]
  I1 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V1["required checks"]
  Evidence --> S2["Docs (2 files)"]
  S2 --> I2["operator or user guidance"]
  I2 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V2["docs review"]
  Evidence --> S3["CI script (2 files)"]
  S3 --> I3["review and security gate shell path"]
  I3 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test (2 files)"]
  S4 --> I4["regression suite"]
  I4 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V4["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

Coverage evidence did not pass, so approval is blocked. The formal pull-request review is the source-backed diff review, not this status comment.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent Re-review exact unchanged head fc5ab3cd against live base main@c47bee59. The prior REQUEST_CHANGES referenced coverage failure from an older protected run; current exact-head coverage-evidence check is successful. Recompute the verdict for this head only and verify Figma TLS sinks, auth boundaries, style/component-set preservation, and current hosted evidence.

@seonghobae
seonghobae force-pushed the codex/pr1043-current-main-successor branch from fc5ab3c to 1b8c7f6 Compare August 20, 2026 00:05
@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head refresh published at 1b8c7f6f rebased onto main@c47bee59: preserved Figma auth/file behavior and style/component-set references, resolved changelog conflicts without dropping prior entries, and kept all three reusable scheduler caller OIDC grants elsewhere intact. Figma focused tests: 64 passed; interrogate reports 100.0% across both helpers; compileall and diff checks passed. The prior REQUEST_CHANGES was tied to an older head/run; hosted evidence must be re-evaluated at this exact head.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent Review exact current head 1b8c7f6f against main@c47bee59. Recompute coverage/docstring evidence and inspect Figma TLS/auth boundaries, bounded responses, style/component-set retention, and token-free output. Do not reuse the predecessor verdict.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Revalidated exact current head 1b8c7f6 against main@c47bee591c3d95bd305f2130833ed3a4780d2d1. Figma focused proof: 64 passed; interrogate 100%; compileall; Semgrep p/default 0 findings; git diff --check passed. The prior REQUEST_CHANGES referenced an older head/run. @opencode-agent recompute the protected verdict for this exact head only, including Figma auth/TLS boundaries and style/component-set retention.

cursoragent and others added 6 commits August 20, 2026 13:15
Cursor Cloud Agents cannot complete Figma MCP OAuth. Record the 401
challenge, the official Cloud-unsupported decision, and a REST
FIGMA_ACCESS_TOKEN whoami helper that never prints the secret.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Semgrep p/default flagged urllib.request.urlopen in figma_rest_auth.py
as dynamic-urllib-use-detected. Open api.figma.com over TLS with a
literal host and path, and refuse any other URL.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Whoami alone does not read a Figma file. Add a pinned
api.figma.com GET /v1/files helper with allowlisted keys and
node ids, and record the operator path in ADR, changelog, and
APA 7 doctoring so Cloud Agents can continue design-to-code.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Absorb the #1032 security extras: allow only X-Figma-Token, cap
whoami/file bodies, cite CWE-22 and plan tokens, and keep a live
unauthenticated /v1/me accuracy check. Prefer this head over #1032.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Cloud Agent file read now returns geometry, solid fills, text, and
auto-layout instead of name/type only, uses branch keys from branch
URLs, accepts instance node ids, and stops claiming MCP-equivalent
design-to-code.

Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Correction to the preceding OpenCode request: the exact current head is 6cbe960 (the abbreviated commit is 6cbe960). The earlier long SHA in that request was mistyped; disregard it. Please review only 6cbe960 and do not reuse the older 54cb022 review.

@seonghobae
seonghobae dismissed opencode-agent[bot]’s stale review August 21, 2026 11:32

Dismissed as stale: this CHANGES_REQUESTED review targets 54cb022; the PR now has exact head 6cbe960 with the cited coverage/conflict repair applied. A fresh exact-head review is still required.

github-advanced-security[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge August 21, 2026 14:12
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head audit update\n\n- Observed hosted failures on the prior head: pip-audit reported PYSEC-2026-3721 through pip 26.1.2; Semgrep reported two HTTPSConnection findings in the new fixed-origin Figma REST sinks.\n- Root-cause fix: refreshed the hash-locked CI dependency to pip 26.2.1 and added narrowly scoped, tested Semgrep suppressions at the two fixed TLS sinks. The sinks retain pinned hosts/paths, certificate-validating default SSL contexts, bounded bodies, and allowlisted request paths.\n- Exact head: 8ffdf4d\n- Exact base: 731af58\n- Local verification: pip-audit clean; local Semgrep on both Figma modules reported 0 findings; 65 Figma tests passed; diff checks passed.\n- GitHub currently reports the branch behind; required checks and exact-head approval remain pending. Decision remains WAIT_AND_REMEDIATE.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Correction to the preceding audit comment: the two fixed API host TLS sinks are pinned to api.figma.com. The wording lost that literal during shell quoting; no repository content or secret was affected.

devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent opencode-agent Bot added area: ui-ux Frontend, interaction, design, or user experience priority: medium Normal-priority or P2 work status: blocked Blocked by conflict, dependency, or required prerequisite type: bug Defect or incorrect behavior labels Aug 22, 2026

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode reviewed the current-head product diff. Coverage is a separate gate.

Changed files

  • AGENTS.md — repository behavior
  • ARCHITECTURE.md — repository behavior
  • CHANGELOG.md — repository behavior
  • CLAUDE.md — repository behavior
  • docs/CWL-MASTER-CONTEXT.md — operator or user guidance
  • docs/adr/0013-figma-cloud-agent-rest-fallback.md — operator or user guidance
  • docs/doctoring/figma-cloud-agent-mcp-auth.md — operator or user guidance
  • requirements-pip-audit-ci-hashes.txt — repository behavior
  • scripts/ci/figma_rest_auth.py — review and security gate shell path
  • scripts/ci/figma_rest_file.py — review and security gate shell path
  • tests/test_figma_rest_auth.py — regression suite
  • tests/test_figma_rest_file.py — regression suite

Changed behavior

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Repository file: AGENTS.md"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Repository file: AGENTS.md"]
  R1 --> V1["required checks"]
  Evidence --> S2["Repository file: ARCHITECTURE.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Repository file: ARCHITECTURE.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
  R3 --> V3["required checks"]
  Evidence --> S4["Repository file: CLAUDE.md"]
  S4 --> I4["repository behavior"]
  I4 --> R4["Review risk: Repository file: CLAUDE.md"]
  R4 --> V4["required checks"]
  Evidence --> S5["Docs: CWL-MASTER-CONTEXT.md (3 files)"]
  S5 --> I5["operator or user guidance"]
  I5 --> R5["Review risk: Docs: CWL-MASTER-CONTEXT.md (3 files)"]
  R5 --> V5["docs review"]
  Evidence --> S6["Repository file: requirements-pip-audit-ci-hashes.txt"]
  S6 --> I6["repository behavior"]
  I6 --> R6["Review risk: Repository file: requirements-pip-audit-ci-hashes.txt"]
  R6 --> V6["required checks"]
  Evidence --> S7["CI script: figma_rest_auth.py"]
  S7 --> I7["review and security gate shell path"]
  I7 --> R7["Review risk: CI script: figma_rest_auth.py"]
  R7 --> V7["bash -n plus Strix self-test"]
  Evidence --> S8["CI script: figma_rest_file.py"]
  S8 --> I8["review and security gate shell path"]
  I8 --> R8["Review risk: CI script: figma_rest_file.py"]
  R8 --> V8["bash -n plus Strix self-test"]
  Evidence --> S9["Test: test_figma_rest_auth.py (2 files)"]
  S9 --> I9["regression suite"]
  I9 --> R9["Review risk: Test: test_figma_rest_auth.py (2 files)"]
  R9 --> V9["targeted test run"]
Loading

Findings

No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.

  • Head SHA: 8ffdf4d8150091957a79b5fc63c984e927d323b3
  • Workflow run: 33195630587
  • Workflow attempt: 1
  • Coverage gate: failure

Review outcome

Coverage is a gate, not the review. This body reviews the changed product files.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Repository file: AGENTS.md"]
  S1 --> I1["repository behavior"]
  I1 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V1["required checks"]
  Evidence --> S2["Repository file: ARCHITECTURE.md"]
  S2 --> I2["repository behavior"]
  I2 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V2["required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V3["required checks"]
  Evidence --> S4["Repository file: CLAUDE.md"]
  S4 --> I4["repository behavior"]
  I4 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V4["required checks"]
  Evidence --> S5["Docs: CWL-MASTER-CONTEXT.md (3 files)"]
  S5 --> I5["operator or user guidance"]
  I5 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V5["docs review"]
  Evidence --> S6["Repository file: requirements-pip-audit-ci-hashes.txt"]
  S6 --> I6["repository behavior"]
  I6 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V6["required checks"]
  Evidence --> S7["CI script: figma_rest_auth.py"]
  S7 --> I7["review and security gate shell path"]
  I7 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V7["bash -n plus Strix self-test"]
  Evidence --> S8["CI script: figma_rest_file.py"]
  S8 --> I8["review and security gate shell path"]
  I8 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V8["bash -n plus Strix self-test"]
  Evidence --> S9["Test: test_figma_rest_auth.py (2 files)"]
  S9 --> I9["regression suite"]
  I9 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V9["targeted test run"]
Loading

@opencode-agent opencode-agent 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.

Pull request overview

OpenCode reviewed the current-head product diff. Coverage is a separate gate.

Changed files

  • AGENTS.md — repository behavior
  • ARCHITECTURE.md — repository behavior
  • CHANGELOG.md — repository behavior
  • CLAUDE.md — repository behavior
  • docs/CWL-MASTER-CONTEXT.md — operator or user guidance
  • docs/adr/0013-figma-cloud-agent-rest-fallback.md — operator or user guidance
  • docs/doctoring/figma-cloud-agent-mcp-auth.md — operator or user guidance
  • requirements-pip-audit-ci-hashes.txt — repository behavior
  • scripts/ci/figma_rest_auth.py — review and security gate shell path
  • scripts/ci/figma_rest_file.py — review and security gate shell path
  • tests/test_figma_rest_auth.py — regression suite
  • tests/test_figma_rest_file.py — regression suite

Changed behavior

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Repository file: AGENTS.md"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Repository file: AGENTS.md"]
  R1 --> V1["required checks"]
  Evidence --> S2["Repository file: ARCHITECTURE.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Repository file: ARCHITECTURE.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
  R3 --> V3["required checks"]
  Evidence --> S4["Repository file: CLAUDE.md"]
  S4 --> I4["repository behavior"]
  I4 --> R4["Review risk: Repository file: CLAUDE.md"]
  R4 --> V4["required checks"]
  Evidence --> S5["Docs: CWL-MASTER-CONTEXT.md (3 files)"]
  S5 --> I5["operator or user guidance"]
  I5 --> R5["Review risk: Docs: CWL-MASTER-CONTEXT.md (3 files)"]
  R5 --> V5["docs review"]
  Evidence --> S6["Repository file: requirements-pip-audit-ci-hashes.txt"]
  S6 --> I6["repository behavior"]
  I6 --> R6["Review risk: Repository file: requirements-pip-audit-ci-hashes.txt"]
  R6 --> V6["required checks"]
  Evidence --> S7["CI script: figma_rest_auth.py"]
  S7 --> I7["review and security gate shell path"]
  I7 --> R7["Review risk: CI script: figma_rest_auth.py"]
  R7 --> V7["bash -n plus Strix self-test"]
  Evidence --> S8["CI script: figma_rest_file.py"]
  S8 --> I8["review and security gate shell path"]
  I8 --> R8["Review risk: CI script: figma_rest_file.py"]
  R8 --> V8["bash -n plus Strix self-test"]
  Evidence --> S9["Test: test_figma_rest_auth.py (2 files)"]
  S9 --> I9["regression suite"]
  I9 --> R9["Review risk: Test: test_figma_rest_auth.py (2 files)"]
  R9 --> V9["targeted test run"]
Loading

Findings

No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.

  • Head SHA: 8ffdf4d8150091957a79b5fc63c984e927d323b3
  • Workflow run: 33226543952
  • Workflow attempt: 1
  • Coverage gate: failure

Review outcome

Coverage is a gate, not the review. This body reviews the changed product files.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Repository file: AGENTS.md"]
  S1 --> I1["repository behavior"]
  I1 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V1["required checks"]
  Evidence --> S2["Repository file: ARCHITECTURE.md"]
  S2 --> I2["repository behavior"]
  I2 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V2["required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V3["required checks"]
  Evidence --> S4["Repository file: CLAUDE.md"]
  S4 --> I4["repository behavior"]
  I4 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V4["required checks"]
  Evidence --> S5["Docs: CWL-MASTER-CONTEXT.md (3 files)"]
  S5 --> I5["operator or user guidance"]
  I5 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V5["docs review"]
  Evidence --> S6["Repository file: requirements-pip-audit-ci-hashes.txt"]
  S6 --> I6["repository behavior"]
  I6 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V6["required checks"]
  Evidence --> S7["CI script: figma_rest_auth.py"]
  S7 --> I7["review and security gate shell path"]
  I7 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V7["bash -n plus Strix self-test"]
  Evidence --> S8["CI script: figma_rest_file.py"]
  S8 --> I8["review and security gate shell path"]
  I8 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V8["bash -n plus Strix self-test"]
  Evidence --> S9["Test: test_figma_rest_auth.py (2 files)"]
  S9 --> I9["regression suite"]
  I9 --> Conflict["Merge conflict blocks this path"]
  Conflict --> V9["targeted test run"]
Loading

@seonghobae seonghobae moved this from Todo to In Progress in naruon Platform Roadmap Aug 31, 2026
@seonghobae

Copy link
Copy Markdown
Contributor Author

Codex ownership note: claimed this Project #1 item at 2026-09-01T00:15:20+0900 for isolated conflict reconciliation against current protected main, current-head review disposition, and full exact-head revalidation. PR #1411 remains independently in hosted-check wait; the only shared path is CHANGELOG.md and no concurrent source edits will be made in the same worktree.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-main reconciliation pushed at exact HEAD 7b38b63a. Preserved the live Project/master context and the Figma Cloud-Agent operator contract; dropped only the stale July “PR-open awaiting merge” snapshot. Review disposition: four informational observations require no source change; real Figma unauthenticated calls succeed in this environment and the focused suite confirms current API behavior; legacy s3-us-west-2 Figma image hosts are now accepted by the bounded Figma/AWS allowlist. Verification: git diff --check; focused Figma auth/file suite 65 passed (including live api.figma.com rejection boundaries); full repository suite 2191 passed, 1 skipped, 21 subtests passed.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Current-head remediation is now b159854. The hosted Strix failure root cause was the pipefail-unsafe bootstrap grep; the one-file shell fix passed the complete test_strix_quick_gate.sh self-test. Devin then identified two valid Figma findings, fixed on the same branch: direct CLI imports now work from arbitrary cwd, and generated labels reject Figma credential markers case-insensitively. Verification on the resulting tree: git diff --check; Ruff; Figma focused suite 66 passed; full pytest 2192 passed, 1 skipped, 21 subtests. Both review threads were answered and resolved; hosted exact-head checks remain authoritative before merge.

@seonghobae

seonghobae commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up exact head d2da380 also ports the validated Noema concurrency correction: cancelled workflow_run follow-ups use their run ID and can no longer evict an actionable same-PR review. Evidence: required-workflow contract 68 passed; full pytest 2192 passed, 1 skipped, 21 subtests; git diff --check. The prior b159854 Noema run was cancelled before steps, not a source-test failure. Hosted checks on d2da380 are now authoritative.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent Review exact current head dd305b199346204230a46349ff73aafa540794ca only. Current-head bootstrap, coverage-source-tree, coverage-evidence, Strix, CodeQL, Semgrep, dependency review, SBOM, gitleaks, OSV, Scorecard, and focused contracts are terminal-success. Recompute the formal verdict from this SHA; do not reuse predecessor reviews. The pip-audit failure was a transient PyPI connection reset and its failed job is being rerun without changing source.

@opencode-agent

opencode-agent Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Scheduled review-feedback autofix for this PR head.

  • Head SHA: dd305b199346204230a46349ff73aafa540794ca

@seonghobae
seonghobae marked this pull request as draft September 5, 2026 02:27
@seonghobae seonghobae added the bug Something isn't working label Sep 7, 2026 — with ChatGPT Codex Connector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ui-ux Frontend, interaction, design, or user experience bug Something isn't working priority: medium Normal-priority or P2 work status: blocked Blocked by conflict, dependency, or required prerequisite type: bug Defect or incorrect behavior

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants