From 564751e3ea891eac2a884caa7ea1dbb88d9688c7 Mon Sep 17 00:00:00 2001 From: OpenAI Date: Fri, 12 Jun 2026 23:00:46 +0000 Subject: [PATCH] docs: keep unfinished NSS and salvage work in TODO --- AI.md | 12 ++++++++++++ REDESIGN.md | 5 +++++ TODO.md | 33 ++++++++++++++++++++++++++++----- 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/AI.md b/AI.md index 51664ca..ea68a53 100644 --- a/AI.md +++ b/AI.md @@ -1,5 +1,17 @@ # AI working notes for mars-nwe +## TODO/REDESIGN/AI file policy correction after 0435 + +`TODO.md` may keep the implementation dashboard table at the top. It is the +short active-work index, not a changelog. Do not remove unfinished tracks merely +because their design is documented elsewhere. In particular, salvage metadata +and the low-level NSS import/helper-extraction line are still unfinished and +should remain visible in `TODO.md` until real implementation/test work closes +them. Finished or superseded work moves out of `TODO.md`; stable architecture +prose belongs in `REDESIGN.md`; handoff rules and patch-history context belong +in this file. + + ## Current handoff status after NSS low-level imports 0404-0423 Current accepted MARS-NWE server line in this work session includes the NSS diff --git a/REDESIGN.md b/REDESIGN.md index 1f9a4dd..9668dac 100644 --- a/REDESIGN.md +++ b/REDESIGN.md @@ -26,6 +26,11 @@ future endpoint work easier to audit against the Novell/Micro Focus SDK, WebSDK, and NDK Core Protocols PDF. +The active-work dashboard lives in `TODO.md` and is intentionally allowed to list +unfinished long-running tracks even when their design is described here. +Salvage metadata and selective NSS low-level helper imports are still open until +implementation and tests close them. + ## Salvage metadata/export model The salvage backend should remain compatible with the existing Samba-style diff --git a/TODO.md b/TODO.md index cb821b7..250f757 100644 --- a/TODO.md +++ b/TODO.md @@ -2,19 +2,23 @@ This file is the project backlog, not a changelog. Keep patch chronology and handoff details in `AI.md`. Keep broad architecture prose in `REDESIGN.md`. -This file should answer: what remains to be done, why it matters, and where the -work belongs. +The dashboard at the top is intentionally retained as the short active-work +index. Remove items from this file only when the work is finished or explicitly +superseded; unfinished long-running tracks such as salvage and low-level NSS +imports stay visible here. This file should answer: what remains to be done, +why it matters, and where the work belongs. ## Implementation dashboard | Area | Priority | Status | Notes | | --- | --- | --- | --- | | DOS namespace compatibility | P0 | Active next | Legal names, wildcard semantics, case folding, reserved names and stable 8.3 aliases. | -| Salvage metadata / backup-tool compatibility | P0 | Planned next | Keep `.recycle` payloads; make `netware.metadata` authoritative for deleted entries; deprecate `.salvage` JSON. | +| Salvage metadata / backup-tool compatibility | P0 | Planned next / unfinished | Keep `.recycle` payloads; make `netware.metadata` authoritative for deleted entries; deprecate `.salvage` JSON. | | NetWare 3.x NCP endpoint completion | P1 | Active audit + implementation | `ENDPOINTS.md` is the detailed decimal/hex audit table; keep this TODO as the short implementation queue. | | NetWare 4.x endpoint compatibility | P2 | Partial / guarded | `ENDPOINTS.md` tracks active compatibility vs guarded 4.x selectors. | | Admin, queues, printing and TTS | P2 | Ongoing | Console-operator model, queue path case handling, print/TTS compatibility cleanup. | | Test infrastructure | P1 | Ongoing | CTest where offline, live all-smokes where server/client state is required, DOS tool smokes. | +| NSS low-level import and helper extraction | P1 | Ongoing / unfinished | Continue direct, selective NSS helper imports where they serve namespace, salvage, streams, metadata or compression; avoid whole NSS runtime subsystems. | | Shared library layering | P2 | Planned cleanup | Move reusable metadata/salvage/stream/compression helpers into libnwcore/libnwfs without importing whole NSS runtime subsystems. | | Transport split and IPX/TCP config | P2 | Documented plan | Keep TCP/IP and IPX under `nwtransport`; make IPX kernel setup internal later, with `ipx-utils` as fallback/debug tooling. | | External file reconciliation | P1 | Planned next | Add libnwfs watcher/scanner support so Samba, rsync and host-created files receive `netware.metadata` and namespace records. | @@ -182,7 +186,26 @@ Follow-up: - The future test environment should generate its own SYS tree and quota image, then start a local MARS-NWE instance from the test build. -### 6. Third-party and shared-library layering +### 6. Low-level NSS import follow-ups + +This track is not complete. Keep it in the active TODO file until the remaining +NSS-derived helpers needed by the NetWare 3.x filesystem line have been adapted, +built and tested. + +- Continue the direct-import pattern for small GPL-2.0 NSS helpers whose APIs are + useful outside the original NSS runtime. +- Keep imported libnwcore helpers in normal `src/core/` and `include/core/` + locations, with original NSS names preserved where that improves source + compatibility. +- Do not import entire NSS/OES runtime subsystems just to satisfy helper + dependencies; replace kernel/VFS/platform hooks with small userland glue. +- Treat remaining namespace, metadata, stream, salvage and compression helper + needs as active follow-up work tied to libnwfs/libnwcore boundaries. +- Keep Unicode/codepage table generation based on the external + `third_party/unicodeTables` submodule and Unicode.org data, not Novell + `unitables/*.tab` files. + +### 7. Third-party and shared-library layering - Keep mars-nwe-owned `.c` and `.h` files under GPL-compatible project control. - Maintain clear boundaries for third-party code: @@ -197,7 +220,7 @@ Follow-up: they exist. -### 7. Transport split and IPX/TCP configuration +### 8. Transport split and IPX/TCP configuration - Keep TCP/IP support as a code/library split under `nwtransport`, not a new daemon.