Skip to content

feat(embed): expose package manifest types - #1168

Merged
jdx merged 1 commit into
mainfrom
agent/embed-workspace-discovery
Jul 28, 2026
Merged

jdx merged 1 commit into
mainfrom
agent/embed-workspace-discovery

Conversation

@jdx

@jdx jdx commented Jul 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • re-export PackageJson, Workspaces, and the manifest error type from the stable embedding facade
  • verify embedded consumers retain Aube’s tolerant real-world manifest parsing

Why

Embedding hosts currently have to depend on aube-manifest directly or duplicate package.json schemas. Keeping these types on aube::embed gives hosts a stable route to Aube’s workspace syntax and tolerant dependency parsing.

Validation

  • cargo fmt --check
  • cargo test -p aube embed::tests
  • cargo clippy -p aube --lib -- -D warnings

AI-assisted — Tool: Codex; model: openai/gpt-5; version: unavailable.


Note

Low Risk
Public re-exports and a test only; no changes to install, lockfile, or resolution behavior.

Overview
Embedding hosts can use PackageJson, Workspaces, and ManifestError from the stable aube::embed facade instead of taking a direct aube-manifest dependency or duplicating schemas.

A new unit test parses a messy package.json through the re-exported PackageJson type and asserts workspace patterns, null/empty dependency maps, and invalid dependency entries are handled the same way Aube does elsewhere.

Reviewed by Cursor Bugbot for commit 71219dc. Bugbot is set up for automated code reviews on this repo. Configure here.

Summary by CodeRabbit

  • Bug Fixes

    • Improved compatibility when reading embedded package manifests with string-based workspace definitions.
    • Manifest parsing now safely handles missing dependencies and ignores invalid development dependency entries.
  • New Features

    • Exposed additional manifest information for integrations that process embedded package metadata.

@greptile-apps

greptile-apps Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Exposes Aube’s package manifest types through the stable embedding facade.

  • Re-exports PackageJson, Workspaces, and ManifestError.
  • Adds a unit test covering tolerant workspace and dependency parsing.

Confidence Score: 5/5

The PR appears safe to merge with no actionable defects identified.

The exported manifest dependency is unconditional, the exposed types support the tested serialization behavior, and the new test exercises the facade without changing existing runtime behavior.

Important Files Changed

Filename Overview
crates/aube/src/embed.rs Adds valid public manifest-type re-exports and verifies tolerant deserialization without introducing an observable defect.

Reviews (1): Last reviewed commit: "feat(embed): expose package manifest typ..." | Re-trigger Greptile

@coderabbitai

coderabbitai Bot commented Jul 28, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: f06e2682-7a9a-4c45-ace0-dd22beebd3dd

📥 Commits

Reviewing files that changed from the base of the PR and between 8e5716a and 71219dc.

📒 Files selected for processing (1)
  • crates/aube/src/embed.rs

📝 Walkthrough

Walkthrough

embed.rs now re-exports additional manifest types and tests tolerant parsing of workspace and dependency fields.

Changes

Embedded manifest support

Layer / File(s) Summary
Manifest exports and tolerant parsing
crates/aube/src/embed.rs
Re-exports ManifestError, PackageJson, and Workspaces, and tests workspace extraction, null dependencies, and invalid development dependency handling.

Estimated code review effort: 2 (Simple) | ~10 minutes

Poem

A rabbit hops through JSON bright,
Finds workspace paths tucked just right.
Null deps fade, bad values flee,
Three manifest types now flow free.
“Tidy parsing!” cheered the bunny.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: exposing package manifest types through the embed facade.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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.

@github-actions

Copy link
Copy Markdown

Instruction counts

Nothing was compared, and so nothing was gated. No series appears on both sides: either the base has no measurements recorded, or the two were measured on different runner classes, which are deliberately not comparable — counts shift between machine types by more than a real regression does.

New, nothing to compare against: graph on gha-linux-x64, install on gha-linux-x64, startup on gha-linux-x64, tree on gha-linux-x64

Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run.

Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.

71219dc38208 vs 8e5716aed05a · measured on this runner, not pushed to the history.

@jdx
jdx enabled auto-merge (squash) July 28, 2026 18:55
@jdx
jdx merged commit 2727166 into main Jul 28, 2026
36 checks passed
@jdx
jdx deleted the agent/embed-workspace-discovery branch July 28, 2026 19:05
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