Skip to content

fix(viewer): remove hard-coded external company branding - #318

Open
seonghobae wants to merge 2 commits into
mainfrom
fix/product-branding-boundary
Open

fix(viewer): remove hard-coded external company branding#318
seonghobae wants to merge 2 commits into
mainfrom
fix/product-branding-boundary

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Objective

Advance issue #317 with a bounded production-branding integrity slice. Protected main rendered Copyright (c) 2026 by HYOSUNG. All rights reserved. in the root shell and document viewer even though Clearfolio is independently distributed under Apache-2.0. This slice removes that unrelated hard-coded ownership claim without pretending the larger buyer-demo workspace problem is solved.

Fresh exact state — 2026-08-10

The former divergent branch and predecessor runs are historical. #270 is protected-main behavior. This clean branch first recreated the focused RED regression on that baseline, then applied only the two intended footer replacements.

Test-first evidence

Historical RED

Test-only head 2b7483a428c54baf41afb4d5d024189ecb891317 originally added ViewerUiBrandingContractTest without changing production. CI 31350957100, Maven job 93341547450, failed exactly the root/viewer assertions because both surfaces contained HYOSUNG.

Clean-baseline GREEN

Current head changes only the two rendered footer claims to Clearfolio Viewer · Apache-2.0 while preserving #270's controller, signed artifact, privacy, and test-evidence changes. The focused contract and full exact-head CI/security/SAST/fuzz gates are GREEN.

Scope / product truth

Changed files:

  1. src/main/java/com/clearfolio/viewer/controller/ViewerUiController.java
  2. src/test/java/com/clearfolio/viewer/controller/ViewerUiBrandingContractTest.java

This PR does not touch demo.js or dom-utils.js, which remain owned by #264, and does not duplicate #268 lifecycle, #306 Office conversion, #313 signing-key readiness, or #316 OpenAPI work.

Issue #317 still owns removal of browser/service demo authority and the truthful production workspace/session bootstrap. Removing a false company footer is not production-workspace readiness.

Merge gate

Move to Ready for ordinary independent review. Merge only if this unchanged exact head continues to satisfy every live required check, zero valid unresolved findings, the counted write-authorized independent approval required by repository policy, and expected-head-safe protection. Never infer approval from checks/comments/models and do not close issue #317 when this bounded slice integrates.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

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

Next review available in: 57 minutes

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?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7bf185c4-b55f-48fc-8dc5-851786bb6184

📥 Commits

Reviewing files that changed from the base of the PR and between 55d7ae8 and 0461768.

📒 Files selected for processing (2)
  • src/main/java/com/clearfolio/viewer/controller/ViewerUiController.java
  • src/test/java/com/clearfolio/viewer/controller/ViewerUiBrandingContractTest.java

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.

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@opencode-agent @cwl-noema-review Please independently review exact current head 076574d5145640c881290f5db4aed3ae5fdf8c1f against protected main f3cc09a9838f0f88c81a2ceae22138fab80a2edb. This is a bounded issue-#317 branding-integrity slice only: the RED head proved both rendered UI shells exposed a hard-coded unrelated company ownership claim, and the GREEN head changes only those two footer claims to Clearfolio Viewer · Apache-2.0 while preserving product identity. Exact-head CI 31351475453, Security Scan 31351475466, SAST 31351475434, and fuzz 31351475440 are successful. Verify the actual diff, licensing/branding truth, no broader demo/UI regression, current-head tests, and absence of stale/predecessor evidence. Report actionable findings or a formal review; do not infer merge approval from automated status.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '== Checkout and ancestry =='
git rev-parse HEAD
git status --short
git cat-file -e 076574d5145640c881290f5db4aed3ae5fdf8c1f^{commit}
git cat-file -e f3cc09a9838f0f88c81a2ceae22138fab80a2edb^{commit}
git merge-base --is-ancestor f3cc09a9838f0f88c81a2ceae22138fab80a2edb 076574d5145640c881290f5db4aed3ae5fdf8c1f && echo 'base-is-ancestor=yes'
echo
echo '== Changed files and full diff =='
git diff --name-status f3cc09a9838f0f88c81a2ceae22138fab80a2edb 076574d5145640c881290f5db4aed3ae5fdf8c1f
git diff --check f3cc09a9838f0f88c81a2ceae22138fab80a2edb 076574d5145640c881290f5db4aed3ae5fdf8c1f
git diff --find-renames --find-copies --unified=80 f3cc09a9838f0f88c81a2ceae22138fab80a2edb 076574d5145640c881290f5db4aed3ae5fdf8c1f
echo
echo '== License and relevant source/test structure =='
fd -HI '^LICENSE|^NOTICE|^COPYING' . -d 2 -x sh -c 'echo "--- $1"; sed -n "1,120p" "$1"' sh {} \;
fd -HI 'ViewerUiController.*|ViewerUiBrandingContractTest.*' . -x sh -c 'echo "--- $1"; ast-grep outline "$1" --items all || true; cat -n "$1"' sh {}
echo
echo '== Branding references in tracked text files =='
rg -n -i -C 2 --glob '!**/.git/**' 'HYOSUNG|Clearfolio Viewer|Apache-2\.0|Copyright \(c\) 2026' .
echo
echo '== GitHub PR current state =='
gh pr view 318 --repo ContextualWisdomLab/clearfolio --json number,state,isDraft,mergeable,headRefOid,baseRefOid,changedFiles,files,reviews,latestReviews,statusCheckRollup,url
echo
echo '== GitHub inline review threads =='
gh api graphql -F owner='ContextualWisdomLab' -F name='clearfolio' -F number=318 -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved
          isOutdated
          comments(first: 10) {
            nodes { author { login } body commit { oid } path line originalLine }
          }
        }
      }
    }
  }
}'

Length of output: 164869


@seonghobae Reviewed source head 076574d5145640c881290f5db4aed3ae5fdf8c1f against main f3cc09a9838f0f88c81a2ceae22138fab80a2edb.

No actionable findings.

  • The base commit is an ancestor of the reviewed source head.
  • The diff changes only the two footer claims in ViewerUiController and adds the focused regression test.
  • Both rendered shells now show Clearfolio Viewer · Apache-2.0.
  • The repository LICENSE is Apache License 2.0. The product identity is consistently Clearfolio Viewer.
  • ViewerUiBrandingContractTest covers both / and /viewer/{docId}. It requires product identity and rejects HYOSUNG.
  • Existing controller tests continue to protect the root buyer-demo shell and document-viewer shell contracts.
  • The exact head has successful Maven, Security Scan, Semgrep, fuzz, and CodeQL results. No formal reviews or inline review threads existed at query time.
  • The strix check was still in progress in the current GitHub status snapshot.

This review does not constitute a merge approval. The PR should remain Draft until the repository review and protection requirements are satisfied.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@seonghobae
seonghobae force-pushed the fix/product-branding-boundary branch from 076574d to 2593408 Compare August 10, 2026 12:11
@seonghobae
seonghobae marked this pull request as ready for review August 10, 2026 12:22
@seonghobae
seonghobae enabled auto-merge (squash) August 10, 2026 12:22

Copy link
Copy Markdown
Collaborator Author

@opencode-agent @cwl-noema-review Please independently review exact current head 046176824929d5185b7431fbe5fb4eb56d1e8237 against protected main 55d7ae8647208e301f282350f076eeddaba61d11. Exact-head CI 31386947737, Security Scan 31386947787, SAST 31386947746, and fuzz 31386947790 are successful. Verify the clean two-file slice preserves #270 controller/security behavior, removes only the two false HYOSUNG ownership claims, and does not misrepresent this branding fix as issue #317 production-workspace/session-bootstrap completion. Advisory review only; do not mutate, count as human approval, merge, or weaken gates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant