Skip to content

fix: normalize JSON-encoded tags in payload hydration#144

Merged
github-actions[bot] merged 1 commit into
masterfrom
fix/tags-json-string-hydration
Apr 5, 2026
Merged

fix: normalize JSON-encoded tags in payload hydration#144
github-actions[bot] merged 1 commit into
masterfrom
fix/tags-json-string-hydration

Conversation

@jordanpartridge
Copy link
Copy Markdown
Contributor

Summary

  • Adds normalizeTags() to decode JSON-encoded string arrays from Qdrant payloads
  • Applied at both hydration points in QdrantService (search results + scroll/get)
  • Fixes TypeError on count() and implode() when tags come back as '["foo","bar"]'

Closes #142

Test plan

  • 3 tests for normalizeTags: array passthrough, JSON decode, invalid input
  • Full suite: 1197 passed

Tags stored as JSON strings in Qdrant are now decoded at the hydration
boundary. Fixes TypeError on count() and implode() downstream.

Closes #142
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 5, 2026

Warning

Rate limit exceeded

@jordanpartridge has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 15 minutes and 37 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 15 minutes and 37 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: aca59f80-ed12-4de5-a5d4-af9ceba50f2d

📥 Commits

Reviewing files that changed from the base of the PR and between 761235d and 2f87cc6.

📒 Files selected for processing (2)
  • app/Services/QdrantService.php
  • tests/Unit/Services/QdrantServiceTest.php
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/tags-json-string-hydration

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 and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 5, 2026

📊 Coverage Report

Metric Coverage Threshold Status
Lines 95.2% 95%

Files Below Threshold

File Coverage Uncovered Lines
app/Enums/ObservationType.php 0% None
app/Exceptions/Qdrant/QdrantException.php 0% None
app/Integrations/Qdrant/Requests/ScrollPoints.php 0% None
app/Mcp/Servers/KnowledgeServer.php 0% None
app/Services/AgentHealthService.php 0% None
app/Commands/DaemonInstallCommand.php 23.1% 57, 58, 61, 66, 67... (+55 more)
app/Mcp/Tools/FileOutlineTool.php 63.2% 47, 48, 49, 50, 51... (+2 more)
app/Commands/ReindexAllCommand.php 63.8% 31, 32, 91, 92, 94... (+16 more)
app/Mcp/Tools/RememberTool.php 66.7% 106, 107, 108, 109, 110... (+19 more)
app/Mcp/Tools/CorrectTool.php 70.4% 53, 54, 55, 56, 57... (+3 more)

🏆 Synapse Sentinel Gate

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 5, 2026

🏆 Sentinel Certified

Tests & Coverage: 0 tests passed
Security Audit: No security vulnerabilities found
Pest Syntax: All test files use describe/it syntax


Add this badge to your README:

[![Sentinel Certified](https://img.shields.io/github/actions/workflow/status/conduit-ui/knowledge/gate.yml?label=Sentinel%20Certified&style=flat-square)](https://github.com/conduit-ui/knowledge/actions/workflows/gate.yml)

@github-actions github-actions Bot merged commit d99ba2a into master Apr 5, 2026
2 checks passed
@github-actions github-actions Bot deleted the fix/tags-json-string-hydration branch April 5, 2026 13:06
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.

bug: tags hydrated as JSON string instead of array from Qdrant payload

1 participant