Repository navigation
✨ dashboard: expose knowledge.* settings in the Settings dialog (parity batch 8) - #12313
Conversation
…parity batch 8) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: scanner <scanner@hive.kubestellar.io> Co-authored-by: clubanderson <407614+clubanderson@users.noreply.github.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Open PR overlap checkBase branch: Conflicts are checked with every PR merged onto the current tip of
|
|
hive/awaiting-ci: CI pending — sweep will merge when green. 🐝 Hive Agent: — hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 |
|
Thank you for your contribution! Your PR has been merged. We'd love to hear how your experience was: share feedback |
Progress: parity batch 8. This exposes 26 scalar
knowledge.*keys in the Settings dialog and removes them from the parity allowlist.Refs #11854 (epic: closes when the parity allowlist is empty; remaining: the deferred knowledge list/map keys and
knowledge.publish.*, plus agents, the governor remainder, project, hub, variables, agent_sandbox, runs, the review list/map keys, tracing and upstream_watch)Settings → Knowledge → Knowledge pipeline (saved by
PUT /api/config/knowledge/pipeline)No existing endpoint held these scalars. The knowledge config editors are
/api/config/knowledge/connectors(a connector list) and/api/config/knowledge/agent-scopes(a map), so this adds a sibling owner-onlyGET/PUT /api/config/knowledge/pipeline. The block loads lazily and has its own Save button, like the Forge App block from batch 6.How saves work:
applyDefaultssets at Load.configasDefault*constants.config.ValidateKnowledgePipelinebefore anything is applied:ParseSynthScheduleunderstands);promote_fromandpromote_tomust differ.config_knowledge_pipeline.The keys:
Bead synthesizer:
knowledge.bead_synthesizer.enabledapplies live: it starts or stops the running synthesizer, asPUT /api/knowledge/bead-synthesizer/enableddoes. These require restart:schedule,target_layer,min_confidence,max_facts_per_cycleandmax_api_calls_per_cycle. ✨ re-run PRs red on a fixed shared-CI baseline, and stop shedding unstick sweeps under API budget pressure #12005 is closed, and the cap it asked for landed through [scanner] ✨ knowledge: conditional requests and configurable cap for bead_synthesizer PR GETs #12252, so the# TODO #12005line no longer needs to stay deferred.Bead retention:
knowledge.bead_synthesizer.retention_policy.max_beads,archive_after_synth_days,high_priority_retain_daysandpreserve_with_depsrequire restart. A retention block created from the dialog starts withpreserve_with_deps: true, which is the boot behaviour when the block is absent.Curator:
knowledge.curator.enabled,schedule,auto_promote_threshold,promote_fromandpromote_torequire restart. Scheduled promotion stays opt-in.Code maps:
knowledge.code_maps.enabled,schedule,layerandmax_bytesrequire restart.Primer:
knowledge.primer.max_factsandmax_bytesrequire restart.Read-only, with a YAML hint and "set in hive.yaml; requires restart":
knowledge.engine;knowledge.bead_synthesizer.vault_pathandknowledge.code_maps.vault_path, which are directories the hive creates and writes to. This follows the batch 6 precedent for identity and path keys;knowledge.primer.merge_strategy, becauseprecedenceis the only strategy implemented.The PUT does not accept any of these.
Settings → Knowledge → Knowledge sharing
knowledge.public.enabledgets a YAML hint on its existing switch. That switch saves throughPUT /api/knowledge/publicand applies live.None of these keys is a secret or hub-managed. Every new control has a
yamlHintand asettingHelpMark, and saves report through toasts.dashboard/openapi.jsondocuments the new route.src/docs/api-reference.mdlists it; itsapi.goline citations were re-synced withcheck-api-reference-citations.sh --fixbecause two route lines were inserted.src/docs/settings.mdgains a Knowledge section.Allowlist
src/pkg/dashboard/settings_parity_allowlist.txtonorigin/v5: 456 → 430 lines (−26 keys).Deferred
knowledge.publish.connector,dry_run,propose_viaandrootare deferred.config.ValidateKnowledgePublishchecks them as one block, together with thepublish.layers[]list (connector, layers and root are required together), so they belong with the publish and connector list keys.knowledge.agent_scopes.<key>.*,connectors[].*,documents[].*,git_sources[].*,layers[].*andvaults[].*;code_maps.repos[].*;curator.extract_from[],primer.priority[]andpublic.tags[];publish.include_types[]andpublish.layers[].Tests
knowledge_settings_parity_test.go(mirroringgovernor_settings_parity_test.go) covers:owner_only_handlers_deny_test.golists both new handlers. The parity ratchet (TestSettingsDialogReferencesEveryHiveYAMLLeaf) covers the allowlist removal. CI is the verdict.— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88 requested_by=@clubanderson