Repository navigation
feat(adt-plugin-gcts): LIMU sub-objects + extension-aware source keys - #238
ThePlenkov wants to merge 1 commit into
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 44 minutes. View limit details
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. Comment |
Reviewer's GuidePreserves LIMU sub-objects and extension-specific companion files through gCTS import and export by routing them to parent objects, encoding extension overrides in source keys, and making companion emission symmetric with parsing. Sequence diagram for extension-aware gCTS companion round-tripsequenceDiagram
participant GctsFiles
participant Deserializer
participant FilenameParser
participant AdkObject
participant Handler
participant GctsEmitter
GctsFiles->>Deserializer: parseGctsFilename(path)
Deserializer->>FilenameParser: parseGctsFilename(path)
FilenameParser-->>Deserializer: parent type suffix extension
Deserializer->>Deserializer: sourceKey(type, suffix, ext)
Deserializer->>AdkObject: stagePendingSources(sources)
AdkObject->>Handler: companionFiles(object, type, objectName, emitted)
Handler->>Handler: splitSourceKey(key)
Handler->>FilenameParser: gctsFilename(objectName, type, source, suffix, ext)
FilenameParser-->>Handler: extension-aware companion path
Handler-->>GctsEmitter: serialized companion files
Flow diagram for LIMU sub-object routing to parent objectsflowchart LR
L["parent.ptype.sub.stype.ext"] --> P[parseGctsFilename]
P --> R["Parent object + suffix sub.stype"]
R --> K["sourceKey suffix.ext"]
K --> A["Parent ADK object sources"]
A --> E["gctsFilename parent suffix ext"]
E --> O["LIMU companion file"]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
View your CI Pipeline Execution ↗ for commit 8103a0e
💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗ ☁️ Nx Cloud last updated this comment at |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 54 |
| Duplication | 2 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
There was a problem hiding this comment.
Review Summary
This PR correctly implements LIMU sub-object filename parsing and extension-aware source keys. The core logic in parseGctsFilename, sourceKey/splitSourceKey, and the plumbing of GctsSourceEntry.ext through gctsFilename is sound and the test coverage is solid.
Three issues require attention before merge:
-
parsePropertiesName— dotted-name misparsing (filename.tslines 220–226): The 3-part.propertiesbranch uses hardcodedparts[0]/parts[1]instead of slice-based access, causing silent truncation for any object name that contains a dot. Every other parse branch in the same file usesparts.slice(0, N).join('.'). -
suffixToSourceKeydrops extension (deserializer.tslines 170–178): When a handler'ssuffixToSourceKeymap resolves a suffix, theextoverride is discarded. A LIMU companion's.json(or.properties) extension is not propagated into the source key, so a subsequent round-trip would emit it with the type's default extension instead. -
Unused import (
filename-grammar.test.tsline 11):readFileSyncis imported but never referenced, which will trigger a TypeScript/ESLint unused-variable error under strict linting.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
|
|
Overall Grade |
Security Reliability Complexity Hygiene |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| Secrets | Oct 24, 2026 11:49p.m. | Review ↗ |
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
e543512 to
a535a75
Compare
a535a75 to
dbfa9cc
Compare
dbfa9cc to
cef97c8
Compare
cef97c8 to
3b5d3d8
Compare
3b5d3d8 to
8103a0e
Compare
✅ Deploy Preview for adt-cli canceled.
|
b1ae49b to
d6e8d4a
Compare
d6e8d4a to
44a5c56
Compare
44a5c56 to
ef127b0
Compare
ef127b0 to
cfc9659
Compare
cfc9659 to
9a3f8ee
Compare
6545955 to
b435bd0
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b435bd0073
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Hey - I've reviewed your changes and they look great!
Sourcery assessment
Needs a human reviewer. If LIMU files are parsed or emitted with the wrong parent, suffix, or extension, a gCTS repository can retain incorrect or missing companion files after export. Those artifacts are bounded and can generally be restored by correcting the mapping and re-exporting or reverting the repository change.
There was a problem hiding this comment.
All reported issues were addressed across 9 files
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
b435bd0 to
3878b22
Compare
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 58 |
| Duplication | 4 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
3878b22 to
f6c3fb0
Compare
f6c3fb0 to
c477e3a
Compare
c477e3a to
d9582a5
Compare
0a81cd4 to
c9e34e4
Compare
c9e34e4 to
c47dfb0
Compare
c47dfb0 to
2916a68
Compare
Spec grammar: {parent}.{ptype}.{sub}.{stype}.{ext} — func/reps/cpub/
cpro/cprt/cpri/sotr/sotu files parse as companions of the parent object
(suffix '{sub}.{stype}') instead of being silently dropped.
Companions whose extension differs from the type's default encode it in
the source key ('{suffix}.{ext}'), so .properties texts, LIMU .json
metadata, and .xdp/.ddic companions round-trip through setSources /
getSources. 'main.{ext}' covers suffix-less companions (master
.properties). GctsSourceEntry.ext carries the override through
gctsFilename.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2916a68 to
138c11d
Compare
|



User description
Summary
{parent}.{ptype}.{sub}.{stype}.{ext}LIMU filenames (func, reps, cpub, cpro, cprt, cpri, sotr, sotu) as companions of the parent object — previously silently dropped{suffix}.{ext}for companions whose extension differs from the type's default (.propertiestexts, LIMU.jsonmetadata,.xdp);main.{ext}for suffix-less companionsGctsSourceEntry.extplumbed throughgctsFilenameso emission is fully symmetric with parsingTest plan
filename-grammar.test.ts: 16/16 — incl. full upstream fugr corpus resolving to parent FUGR, sourceKey/splitSourceKey round-tripsfilename.test.ts+source-companions+schema-conformance+generic-roundtrip: all green locally (node --test, no builds)Generated with Devin
Summary by Sourcery
Preserve LIMU sub-objects and extension-specific companion files across gCTS import and export round trips.
New Features:
Bug Fixes:
Enhancements:
Tests:
Chores:
Summary by cubic
Parses LIMU sub-object files (
{parent}.{ptype}.{sub}.{stype}.{ext}forfunc,reps,cpub,cpro,cprt,cpri,sotr,sotu) as companions of the parent object instead of silently dropping them during AFF deserialization.Source keys now encode file extensions so companions round-trip: a companion whose extension differs from the type's default uses a
{suffix}.{ext}key (.propertiestexts, LIMU.jsonmetadata,.xdp), and suffix-less companions usemain.{ext}.GctsSourceEntry.extcarries the override throughgctsFilename, making emission fully symmetric with parsing; the newsourceKey/splitSourceKeyhelpers,LIMU_SUBTYPES, andgctsSourceExtare exported.Written for commit 8103a0e. Summary will update on new commits.
CodeAnt-AI Description
Preserve LIMU sub-objects and companion files in gCTS round trips
What Changed
Impact
✅ LIMU files stay attached to their parent objects✅ JSON metadata and translated text survive round trips✅ Namespaced objects stay in the correct file path💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.