Skip to content

feat: integrate Google Drive ingestion, selection and Source history (MEM-76) - #89

Merged
nhuxuanviet merged 22 commits into
mainfrom
nhuxuanviet/google-drive-main-integration
Sep 9, 2026
Merged

feat: integrate Google Drive ingestion, selection and Source history (MEM-76)#89
nhuxuanviet merged 22 commits into
mainfrom
nhuxuanviet/google-drive-main-integration

Conversation

@nhuxuanviet

Copy link
Copy Markdown
Collaborator

Scope

Integrate the previously committed Google Drive work and Source follow-ups into current main, preserving the logical commit history. Includes reusable Tenant-owned OAuth credentials, immutable General/Specific scopes, independent schedules, native Sheets/Docs and bounded binary/table extraction, linked-document discovery/explicit approvals, durable asynchronous selection validation, exact acquisition-to-indexing run history, paged selection/Files/history, shared pagination and stale-Source action guards. Preserve the existing Docling settings/15-minute processing-budget commit.

Main Chat/JIT and Search PRs #83/#87 are already integrated through 3f236d5; Source conflict resolution preserves the feature HEAD. Generated OpenAPI and browser clients are reconciled. Integration-only Search retry and Chat HTTP/SSE fixture corrections preserve production behavior and assertions.

Related: MEM-76, scoped implementation under MEM-9/MEM-10/MEM-60/MEM-63. This is not closure of broader Google ACL/reader, live-provider or customer-data acceptance.

Local verification

  • Full uncached, serial clean check :api:bootJar :worker:bootJar --continue: BUILD SUCCESSFUL in 10m18s. 495 cases: 491 passed, 4 conditional skips, zero failures/errors. Skips: one optional live Chat model and three real Docling cases. Build outputs isolated from running review artifacts.
  • pnpm check: 93 unit tests in 18 files plus generated-contract/route drift, CI consistency, lint/format/TypeScript/build/fonts.
  • Full Playwright: 54/54 passed, one worker, no retries, 4.3m.
  • Rendered read-only desktop/mobile Source, Chat and latest Search smoke: exact paging/keyboard behavior, setup navigation, literal highlights and generation-pinned preview. Synthetic HTTP proof, not live Google/model acceptance.
  • OpenSearch infrastructure: seven passed, two Linux-only cases skipped locally on Windows; Linux CI remains required.
  • Latest commit only records user authorization/status; it does not alter verified code.

Canonical verification · Active plan

Migration and operational boundaries

  • Main V1–V20 remains byte-identical. Twelve unpublished Drive migrations move V18–V29 → V21–V32 with unchanged SQL bodies.
  • Never apply this layout to existing memoryos_main_review or memoryos_drive_review histories. No Flyway repair/history rewrite/reset, database cutover or deployment is included.
  • No changes to retained Sources, credentials, roots, approvals, schedules or Google content; no reindex/extraction retry. Google remains RESTRICTED and does not inherit FILE PUBLIC read eligibility.
  • Known pre-existing pnpm audit: five high/five moderate development-tool transitive advisories (fast-uri, js-yaml); separate default-branch Dependabot report: nine high/two moderate. Existing Chat bundle-size warning retained; no security-clean or IDE-clean claim.

Merge gate

User authorized merge-when-green. Require latest-head CI, one complete CodeRabbit review pass with actionable findings resolved, fresh base and exact-head guard. Merge commit only; do not squash/rebase. No staging deployment. Preserve broader provider/ACL/customer-data acceptance as active.

Add reusable encrypted OAuth credentials, General and Specific scopes, independent scheduling, and durable snapshot publication through the shared ingestion pipeline.

Keep API contracts, V13-V20 migrations, worker/provider integrations, and their regression coverage together as one atomic backend cutover.
Add reusable credential setup, General and Specific scope controls, independent interval editing, and the refreshed source-management UI.

Report accepted and terminal operation outcomes, retain safe upload/navigation recovery, and enforce five-second notices across focus and route changes. Cover the workflows with component and browser regressions.
Consolidate architecture, authorization and scope semantics, snapshot safety, action-feedback behavior, and verification matrices.

Record passing backend/frontend gates and bounded live UI evidence, including preservation of the original three-Sheet Source and cleanup of the temporary Source. Keep broader provider acceptance and document authorization explicitly outside this delivery.
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 20a41e3d-8630-4c5b-aac6-8489003b0d6f


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.

@nhuxuanviet

Copy link
Copy Markdown
Collaborator Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
⚠️ Action not completed

Review skipped: 286 files exceed the limit of 100.

@nhuxuanviet

Copy link
Copy Markdown
Collaborator Author

Single CodeRabbit pass captured at 48fc186: bot explicitly reported 286 eligible files against a 100-file quota and insufficient usage credits. Both bot comments, submitted reviews, paginated inline comments and all review threads were collected once: no actionable findings, no submitted review, zero threads. This is missing review coverage, not CodeRabbit approval. No second request or evidence polling will be made. The repository PR-loop quota fallback remains conditional on all latest-head CI checks green, a fresh base and exact-head guarded merge under user authorization. Fix round 1 (e46caa2) only adds the exact historical MEM-66 table-prose fingerprint to existing .gitleaksignore and records evidence. Full remote-history Gitleaks 8.30.1 changed from one reproduced false positive to zero; no broad exclusion or workflow weakening. Waiting for fresh CI before any merge.

@nhuxuanviet
nhuxuanviet merged commit 274bc78 into main Sep 9, 2026
8 checks passed
@nhuxuanviet

Copy link
Copy Markdown
Collaborator Author

Merged with exact-head guard: e46caa2 -> merge commit 274bc78. Git ancestry and identical merge/feature trees verified. Latest-head CI: https://github.com/kl3inIT/MemoryOS/actions/runs/34378139200 . Exact merge-SHA main CI: https://github.com/kl3inIT/MemoryOS/actions/runs/34378905200 (all seven jobs success, including image publication). Deploy staging run https://github.com/kl3inIT/MemoryOS/actions/runs/34379631781 was skipped. No runtime cutover. MEM-76 evidence updated; broader live-provider/ACL acceptance remains active. Review-runtime worktree/build artifacts intentionally retained; owned temporary scanner removed. CodeRabbit quota fallback evidence is recorded above, not claimed as reviewer approval.

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