Skip to content

test(qwen3): agentic review @beta.15 — qwen.qwen3-next-80b-a3b#18

Closed
wezell wants to merge 1 commit into
t15-qwen3-basefrom
t15-qwen3-head
Closed

test(qwen3): agentic review @beta.15 — qwen.qwen3-next-80b-a3b#18
wezell wants to merge 1 commit into
t15-qwen3-basefrom
t15-qwen3-head

Conversation

@wezell

@wezell wezell commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Clean single-model e2e at @v3.3.0-beta.15. Model: qwen.qwen3-next-80b-a3b — bedrock-harness. Reviewed diff = only the dotCMS#36317 change. Throwaway.

dotCMS#36279)

Content Drive's upload dialog lets users pick Asset vs File, which are
semantically base types. Previously only DOTASSET could be resolved from a
base type on the backend, so firing the NEW workflow action with
baseType: FILEASSET failed with "content type or base type is not set or is
invalid". This adds the missing FILEASSET resolution and switches the
frontend to send the base type.

Backend:
- Extract the dotAsset mime-matching algorithm into a reusable
  BaseTypeMimeTypeMatcher (parameterized by base type + binary field var);
  DotAssetAPIImpl.tryMatch now delegates to it (DOTASSET behavior unchanged).
- Move DotAssetBaseTypeToContentTypeStrategyImpl out of the resolver into its
  own class and add FileAssetBaseTypeToContentTypeStrategyImpl, which
  mime-matches FILEASSET content types and falls back to the default FileAsset.
- Register both strategies; fix BaseTypeToContentTypeStrategyResolver.subscribe
  which ignored its baseContentType arg and always registered under DOTASSET.

Frontend:
- Revert uploadDotAsset to its original 2-arg form; add uploadFileByBaseType
  (DotUploadFileService) and newContentletByBaseType (DotWorkflowActionsFireService)
  which send baseType instead of contentType.
- Content Drive now emits DOTASSET/FILEASSET and routes uploads through the new
  method; root-level uploads carry the current site identifier so they land on
  the browsed site, not the default host.

Tests: resolver unit test (subscribe regression + FILEASSET registration),
FileAsset strategy integration test, and frontend specs for the new methods,
base-type selection, and current-site root upload.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

🤖 dotBot Review (Bedrock)

Reviewed 18 file(s); 12 candidate(s) → 2 confirmed, 6 uncertain (unverified, kept for review).

⚠️ Coverage capped: 0 file(s) + 26 lower-severity candidate(s) skipped (limits: 40 files, 12 candidates).

Confirmed findings

  • 🟡 Medium core-web/libs/portlets/dot-content-drive/portlet/src/lib/dot-content-drive-shell/dot-content-drive-shell.component.spec.ts:529 — Upload service method renamed without verifying implementation
    The component under test (dot-content-drive-shell.component.ts:529) now calls uploadFileByBaseType, but the service implementation (DotContentDriveUploadService) has not been verified to expose this method with the same signature. The test confirms the component calls it, but no corresponding implementation change is visible in the diff, creating a risk of runtime failure.
  • 🟡 Medium core-web/libs/portlets/dot-content-drive/portlet/src/lib/dot-content-drive-shell/dot-content-drive-shell.component.spec.ts:705 — Test assumes uploadFileByBaseType is never called during dropzone events
    The test at line 705 asserts that uploadFileByBaseType is not called when uploadFiles is emitted, but other tests in the same file (e.g., lines 769, 785, 802, 819, 921, 953) show that uploadFileByBaseType IS called for file uploads via other paths. This inconsistency suggests the test may be incorrectly assuming dropzone uploads bypass uploadFileByBaseType, potentially masking a logic flaw if dropzone now uses the same method. The test is not aligned with the component's actual behavior as demonstrated elsewhere in the test suite.

🔎 Uncertain (could not confirm or disprove — review manually)

  • 🟡 Medium core-web/libs/portlets/dot-content-drive/portlet/src/lib/dot-content-drive-shell/dot-content-drive-shell.component.spec.ts:893 — Warning message logic may be inconsistent with new upload method
    The test warns about multiple files but only uploads the first; the change from uploadDotAsset to uploadFileByBaseType may have altered single-file enforcement logic, but the diff does not show the implementation of uploadFileByBaseType or how validation is applied, so it's unclear if the behavior is still correct.
  • 🟡 Medium dotCMS/src/main/java/com/dotcms/contenttype/business/BaseTypeMimeTypeMatcher.java:72 — Potential NPE in mimeTypeFieldVariables.split() — Unverified assumption
    The suspected NPE issue is in a code path not visible in the provided diff. The line 65-85 shown does not contain any .split(',') call, nor any reference to fieldVariableOpt.get().value(). The original suspicion was about a split() on an empty string, but the diff does not show where that logic resides. The code shown assumes mimeTypeFieldVariables is already a String[] populated elsewhere. Without seeing the definition or initialization of mimeTypeFieldVariables (likely from a split() in mapToContentTypeMimeType()), we cannot confirm if the issue exists or is handled. Need to see the implementation of mapToContentTypeMimeType() or the field declaration.
  • 🟡 Medium dotCMS/src/main/java/com/dotcms/contenttype/business/BaseTypeMimeTypeMatcher.java:105 — Uninitialized array element risk
    The array mimeTypeMappingArray is initialized with new Map[6], but individual elements may remain null if not explicitly assigned. While findContentType() checks for null before iteration, the code path that initializes the array is not visible in this diff. Without seeing how the array is populated (e.g., in constructor or static block), it's uncertain whether all elements are guaranteed to be non-null. If initialization logic changes or fails silently, a null element could cause the loop to skip a tier without error — a latent bug.
  • 🟡 Medium dotCMS/src/main/java/com/dotcms/contenttype/business/BaseTypeMimeTypeMatcher.java:129 — No validation or fallback logging for missing binaryFieldVar
    The code assumes binaryFieldVar exists in fieldMap and uses it to retrieve fieldVariables; if absent, it falls back to ALL_MIME_TYPE without logging or validation. While this may be intentional, the lack of defensive checks or logging makes it hard to diagnose misconfigurations. No evidence in the diff confirms whether binaryFieldVar is guaranteed to exist by contract or if this is a latent risk.
  • 🟡 Medium core-web/libs/data-access/src/lib/dot-upload-file/dot-upload-file.service.spec.ts — Unclear context for suspected issue in dot-upload-file.service.spec.ts
    No specific line or diff provided to verify; suspected issue lacks concrete evidence or context to confirm or refute.
  • 🟡 Medium core-web/libs/data-access/src/lib/dot-workflow-actions-fire/dot-workflow-actions-fire.service.spec.ts — Suspected issue in test file with no line number
    The suspected issue in dot-workflow-actions-fire.service.spec.ts lacks a line number and context; cannot verify presence or nature of issue without additional code or test details.

qwen.qwen3-next-80b-a3b · Run: #28255163231 · tokens: in: 92860 · out: 11486 · total: 104346 · calls: 47 · est. ~$0.056

@wezell wezell closed this Jun 26, 2026
@wezell wezell deleted the t15-qwen3-head branch June 26, 2026 19:07
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.

2 participants