Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Follow-up to #6670: Row-only delete (KeepDescendants) and installer row repair: scope, cost, coverage, localization

Closed
#6,751 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

A pull request for this has already been merged.

  • #6670 by @rbuergi — merged

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
15/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp
Domain
backend

Research direction

Start with the five checklist items, each of which names a symbol to read: the KeepDescendants guard near DeleteNodeRequest and PartitionDropPostDeletionHandler, the drain that calls ListDescendantPaths before ExistsInWritableStorage, InstalledPackageRepairService iterating InstalledRecords, and the activity.delete.validatorRejected string in both localization catalogs. Each fix needs a failing test first, and done means every item has one and passes. Scope is unsettled and involves a manifest-less code package path, so confirm the approach with a maintainer before writing code.

Written by the indexing model from the issue text.

Description

bug feature:node-delete sev:M

Follow-up to #6670 (review findings deferred from that pull request; Refs #6670).

  • DeleteNodeRequest.KeepDescendants is honoured for every node type and caller. Refuse it unless the loaded target is a NodeType definition: on a partition root, PartitionDropPostDeletionHandler still drops the store, and on an ordinary parent it bypasses the has-children guard and orphans paths.
  • The row-only drain still enumerates ListDescendantPaths(rootPath) before discarding them; verify only ExistsInWritableStorage(rootPath).
  • InstalledPackageRepairService reconciles only the first record per target partition (InstalledRecords), so rows declared by a later package in a shared partition are never examined; run row reconciliation over every record.
  • Code packages have no manifest file for their synthesized NodeType, and the reconciliation outcome is discarded before the install record is written, so boot repair cannot derive type-or-target/{packageId}; persist or derive it for PackageKind.Code.
  • The new delete validation reason is an English sentence interpolated into the localized activity.delete.validatorRejected (lines 4145, 4154); give it its own key in both catalogs and hand over the mirror sync.

These are automated-review findings, assessed from the diff and not reproduced; each needs a failing test before its fix. Deferred from the PR because CI is saturated and none of them is a security hole, data loss or a broken build/test.

Dominant language
C#
Stars
12
Forks
5
Avg merge
5h 34m
Merged PRs (30d)
960

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Systemorph/MeshWeaver

All issues in Systemorph/MeshWeaver

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.