Repository navigation
feat(agent-config): inline scalar and map field editing [15/21] - #336
gusfcarvalho merged 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 59 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (10)
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 |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Map additions bypass per-key access controls, and empty-value handling can use an incomplete set of instance bases.
Review effort: Balanced
Findings: 1
Open (3)
What changed in this PR
Adds inline agent-configuration editing components for the future Effective view.
Changes:
- Adds scalar/map editors with access, pending, and undo indicators.
- Adds empty/null handling and agent flag summaries.
- Tests empty string map behavior.
| File | Description |
|---|---|
scalar.ts |
Defines scalar editor kinds. |
PendingPill.vue |
Displays pending changes and undo. |
nullKeys.ts |
Detects invalid null object values. |
MapFieldEditor.vue |
Edits plugin config and label maps. |
InlineScalarEditor.vue |
Edits scalar configuration values. |
emptyValue.ts |
Implements empty string inheritance behavior. |
EditableField.vue |
Wraps fields with editing and access controls. |
AccessIcon.vue |
Displays field-access indicators. |
emptyValue.spec.ts |
Tests empty-value behavior. |
ConfigFlagsSummary.vue |
Summarizes editable agent flags. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| :warn-keys="field === 'config'" | ||
| :test-id="`${field}-${plugin}`" | ||
| @set="setValue" | ||
| @add="(k, v) => draft.set(p(k), v)" |
| const bases = [ws.placeholderBase.value, ...ws.bases.value]; | ||
| /** Some instance's file defines this key: emptying it inherits the file value. */ | ||
| const inAnyBase = definedInAnyBase(bases, props.ptr); |
| function setValue(k: string, v: string) { | ||
| setStringKey(draft, [ctx.placeholderBase.value, ...ctx.bases.value], p(k), v); | ||
| } |
5fc2700 to
2c70aaa
Compare
2c70aaa to
d200150
Compare
d200150 to
eb2cdad
Compare
eb2cdad to
a64a8c5
Compare
a64a8c5 to
8173c9a
Compare
8173c9a to
fe058c4
Compare
Layer 15 of 21 in the stacked split of #318. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fe058c4 to
20ee278
Compare


Part 15 of 21 of the stacked split of #318 (agent remote configuration). Every layer adds the final version of its files from #318, and only imports from layers below it, so each layer passes
make reviewableon its own. Nothing is reachable in the app until layer 20 wires the Configuration tab in.What
Inline editing in the Effective view: scalar editor, editable field wrapper, map field editor, access/pending indicators, empty/null value helpers, and the config flags summary.
Tests
emptyValue.spec.ts; inline editing end to end is covered byInlineEditing.spec.tsin layer 21.🤖 Generated with Claude Code