Skip to content

feat: wire Naruon projection into Workspace Calendar (v2.17.0) - #608

Merged
seonghobae merged 1 commit into
mainfrom
feat/naruon-calendar-buyer-wiring-v2170
Aug 25, 2026
Merged

feat: wire Naruon projection into Workspace Calendar (v2.17.0)#608
seonghobae merged 1 commit into
mainfrom
feat/naruon-calendar-buyer-wiring-v2170

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Outcome

Wires the published Naruon calendar projection contract into the Buyer Calendar (ADR 0203 activation gate step 2 / issue #336). GET /api/calendar and the 달력 destination now consume NARUON_CALENDAR_BASE_URL / NARUON_CALENDAR_SERVICE_TOKEN beside post-grounded commitments.

Observed Naruon occurrences stay evidence-only. A commitment still opens that post on the board. Missing or malformed audience, transport failure, or contract rejection fail-closes with events: [] and the ADR 0183 copy 이 범위의 일정을 아직 받을 수 없습니다. Commitments remain available.

Integrity boundary

Verification

  • uv run --extra dev pytest -q tests/test_naruon_calendar_workspace.py backend/tests/test_config.py — 19 passed
  • pnpm exec vitest run src/components/WorkspaceCalendar.test.tsx src/i18n.test.ts — 66 passed
  • pnpm exec vitest run src/App.test.tsx -t "calendar|달력|commitment|RankWeave unavailability" — 7 passed

Not claimed

Activation gates 3–5 remain open: Naruon producer endpoint, provider/consumer fixtures against a released Naruon artifact, degraded/retry/revision tests, and protected merge. Do not close #336 until those land. Independent exact-head APPROVE is required; do not self-approve.


Open in Devin Review

GET /api/calendar consumes the ADR 0203 Naruon projection beside
post-grounded commitments. Observed events stay evidence-only; a
commitment still opens that post. Missing or malformed Naruon
audience fail-closes with the ADR 0183 달력 copy. CALDAV_BASE_URL
is not a fallback. The end-user bearer is never forwarded.

Refs #336
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 19 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: 07fdb0a5-c019-44e6-af22-9a006c652175

📥 Commits

Reviewing files that changed from the base of the PR and between 4f53190 and e1015bb.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (25)
  • .env.example
  • CHANGELOG.d/2.17.0-naruon-calendar-buyer-wiring.md
  • CHANGELOG.md
  • backend/app/config.py
  • backend/app/main.py
  • backend/tests/test_api.py
  • backend/tests/test_config.py
  • docker-compose.yml
  • docs/adr/0183-gnb-four-korean-chrome.md
  • docs/adr/0203-naruon-calendar-projection-boundary.md
  • docs/product-technical-gap-baseline.md
  • docs/storybook-inventory.md
  • frontend/package.json
  • frontend/src/App.test.tsx
  • frontend/src/App.tsx
  • frontend/src/api.ts
  • frontend/src/components/WorkspaceCalendar.stories.tsx
  • frontend/src/components/WorkspaceCalendar.test.tsx
  • frontend/src/components/WorkspaceCalendar.tsx
  • frontend/src/i18n.test.ts
  • frontend/src/i18n.ts
  • lineageweave/__init__.py
  • lineageweave/naruon_calendar_workspace.py
  • pyproject.toml
  • tests/test_naruon_calendar_workspace.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.

Copy link
Copy Markdown
Contributor Author

Opened from main@4f53190. Independent of #387 / #493 / #579 / #606. Do not squash-merge without an independent exact-head APPROVE on e1015bb9cd0b32ac5d04d0d17367002dffd21ee6. Do not self-approve. Do not close #336 until Naruon producer gates land.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Devin Review found 3 potential issues.

Open in Devin Review

Comment thread docs/storybook-inventory.md
Comment thread backend/app/main.py
Comment thread backend/app/main.py
@seonghobae
seonghobae merged commit e9a9dab into main Aug 25, 2026
22 of 25 checks passed
@seonghobae seonghobae changed the title feat: wire Naruon calendar projection into Buyer Calendar (v2.17.0) feat: wire Naruon projection into Workspace Calendar (v2.17.0) Aug 25, 2026
@seonghobae

Copy link
Copy Markdown
Contributor Author

Resolved all current review findings in 37a27b0: the existing PopupCloseButton Storybook inventory row is restored; request windows are validated as exact bounded RFC 3339 input and return 422 before transport; the blocking Naruon client runs through asyncio.to_thread; and new product/object language uses Workspace Calendar rather than Buyer. The stale OIDC login regression was also composed. Verification: 55 Naruon contract tests, 62 Naruon/docstring/hygiene tests, five calendar UI tests, the OIDC redirect regression, lint, and production build pass.

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.

[Buyer Gap] Replace pseudo-CalDAV feed with a Naruon-owned calendar projection

1 participant