Commit Graph

105 Commits

Author SHA1 Message Date
Mario Fetka
cb4d9c8a9e docs: document ncp22 quota and trustee layouts 2026-06-01 22:36:56 +02:00
Mario Fetka
017ef23833 docs: document ncp22 directory scan layouts 2026-06-01 22:23:23 +02:00
Mario Fetka
4db82757c1 docs: document ncp22 directory handle layouts 2026-06-01 22:11:13 +02:00
Mario Fetka
dcfe19b799 docs: clarify legacy NCP audit compatibility scope 2026-06-01 22:04:14 +02:00
OpenAI
8ccc4cbea2 docs: document ncp22 directory mutation layouts 2026-06-01 21:54:24 +02:00
bot
492befda0d docs: record old direct sync layout audit results 2026-06-01 21:41:54 +02:00
Mario Fetka
dd64d83979 docs: document core NCP 22 directory layouts 2026-06-01 21:26:14 +02:00
Mario Fetka
fba1939610 docs: document forwarded message endpoint layouts
All checks were successful
Source release / source-package (push) Successful in 53s
2026-06-01 20:59:26 +02:00
Mario Fetka
df5a7c872e docs: document legacy direct NCP utility layouts 2026-06-01 20:52:25 +02:00
Mario Fetka
2be5d7aeec docs: document logical record sync request layouts 2026-06-01 20:46:40 +02:00
Mario Fetka
d61f320a43 docs: document old file sync request layouts 2026-06-01 20:38:01 +02:00
Mario Fetka
8fe39a1a57 docs: add old sync endpoint TODO stubs 2026-06-01 20:27:47 +02:00
ai
2a41480a65 docs: record completed AFP ProDOS smoke status 2026-06-01 12:14:40 +02:00
ai
92b0c4a34a afp: add deleted file Macintosh info endpoint
All checks were successful
Source release / source-package (push) Successful in 55s
2026-06-01 11:07:43 +02:00
ai
59e8694d7d docs: mark salvage complete and queue AFP 0x13 2026-06-01 10:37:32 +02:00
ai
58eda41057 salvage: log and test stale payload cleanup
All checks were successful
Source release / source-package (push) Successful in 1m46s
2026-06-01 10:22:46 +02:00
ai
094f24224e salvage: drop stale sidecars when payload is missing 2026-06-01 10:04:35 +02:00
Mario Fetka
c441ff0f57 docs: add AI notes and logging schema todo
All checks were successful
Source release / source-package (push) Successful in 56s
2026-05-31 20:49:31 +02:00
OpenAI
b188491a20 tests: append NCP salvage scan to smoke suite 2026-05-31 18:25:22 +02:00
Test
51ae60a6f8 salvage: add initial NCP scan endpoint
All checks were successful
Source release / source-package (push) Successful in 57s
2026-05-31 18:06:51 +02:00
OpenAI
3466ae05b4 tests: document salvage recycle behaviour 2026-05-31 16:18:04 +02:00
OpenAI
5365f0e37f TODO: keep only active AFP deleted-file follow-up
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-31 09:17:29 +02:00
Mario Fetka
4443c33274 tests: record AFP timestamp plausibility smoke success 2026-05-31 08:06:02 +02:00
Mario Fetka
63ee154c89 tests: drop transient AFP SetInfo layout markers 2026-05-31 07:49:27 +02:00
Mario Fetka
7578f3ac6b tests: record AFP entry-id-relative name lookup smoke success 2026-05-31 07:45:56 +02:00
Mario Fetka
a25233e84e tests: record AFP temporary directory handle entry-id smoke success 2026-05-31 07:31:06 +02:00
OAI
b52c52e421 tests: record AFP fork close lifecycle smoke success 2026-05-31 07:23:39 +02:00
OAI
7c0af26ec5 tests: record AFP file fork I/O smoke success 2026-05-31 07:16:10 +02:00
Mario Fetka
2a610f4fb6 tests: document AFP test group paths and option 2026-05-31 06:56:52 +02:00
Mario Fetka
85ea3dd863 tests: record AFP metadata entry-id resolver smoke success 2026-05-31 06:53:48 +02:00
Mario Fetka
711dceb42a tests: record standalone AFP xattr backend smoke success 2026-05-31 06:36:34 +02:00
OpenAI
aa041a405b docs: clarify standalone AFP xattr metadata backend
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-31 06:27:03 +02:00
Mario Fetka
fa96ebb264 nwatalk: use standalone mars_nwe AFP xattr backend 2026-05-31 06:15:03 +02:00
Mario Fetka
b1a5f9a0b3 tests: record WebSDK AFP set file information smoke success 2026-05-30 22:48:37 +02:00
a
5309422eb7 tests: record AFP rename smoke success 2026-05-30 22:27:54 +02:00
Test
cd4ca7c4d9 tests: record AFP delete smoke success 2026-05-30 22:02:44 +02:00
Mario Fetka
3b3a378a22 tests: record AFP create file smoke success
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 21:48:39 +02:00
Mario Fetka
434de903bd tests: add AFP create file smoke
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 21:41:08 +02:00
Mario Fetka
0a60e0ce7a tests: record AFP create directory smoke success
All checks were successful
Source release / source-package (push) Successful in 50s
2026-05-30 21:30:35 +02:00
Mario Fetka
9032848c9a nwconn: keep AFP file entry IDs on nwatalk fallback
All checks were successful
Source release / source-package (push) Successful in 47s
2026-05-30 21:00:20 +02:00
Mario Fetka
0a171048e8 tests: add AFP create directory smoke
All checks were successful
Source release / source-package (push) Successful in 46s
2026-05-30 20:52:43 +02:00
Mario Fetka
ee2271c099 tests: record AFP namespace entry id smoke success
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 20:22:44 +02:00
OpenAI
a4dd5c3678 tests: record AFP trustee access privileges smoke success
All checks were successful
Source release / source-package (push) Successful in 46s
2026-05-30 19:57:42 +02:00
Mario Fetka
fc7f099494 tests: record AFP create and access timestamp smoke success
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 19:42:32 +02:00
Mario Fetka
31a9234c8b nwconn: route AFP access timestamps through atime
All checks were successful
Source release / source-package (push) Successful in 48s
2026-05-30 19:27:38 +02:00
OpenAI
b442500ef9 nwconn: route AFP create timestamps through nwarchive fileinfo
All checks were successful
Source release / source-package (push) Successful in 50s
2026-05-30 19:18:35 +02:00
OpenAI
8bfedbacf1 tests: record AFP backup timestamp smoke success
All checks were successful
Source release / source-package (push) Successful in 52s
Record the successful Linux AFP smoke-suite run for the WebSDK Backup Date/Time Set File Information field. The smoke output confirms bitmap 0x2000, the AFP backup timestamp value derived from epoch 1700000000, and the corresponding mars_nwe archive metadata xattr.

This documents the intended split between the Archive file attribute, which is mapped through the existing NetWare attribute path, and the Backup Date/Time field, which is routed through nwarchive.c and stored in org.mars-nwe.netware.archive.

Tested-by: ./afp_smoke_suite.sh ... --backup-time-only --backup-time-epoch 1700000000 (reported failures=0)
2026-05-30 18:35:38 +02:00
OpenAI
bbc37565c8 nwconn: route AFP backup timestamps through nwarchive
All checks were successful
Source release / source-package (push) Successful in 48s
Implement the WebSDK AFP Set File Information Backup Date/Time request bitmap as a narrow metadata write that reuses mars_nwe's existing archive metadata helper instead of adding a new AFP-specific storage path.

The AFP Attributes word already maps Archive through the NetWare FILE_ATTR_A path; Backup Date/Time is a separate SetInfo field and belongs in the existing nwarchive.c archive date/time metadata.  Include nwarchive.h in nwconn, fill the AFP information record's Backup Date/Time fields from mars_nwe_get_archive_info(), and accept the SetInfo 0x2000 bitmap by calling mars_nwe_set_archive_info() after the normal AFP path resolution and Modify-rights gate.

Extend the Linux Set File Information smoke helper with --backup-time-epoch/--backup-time-only, verify the returned 120-byte file information record at offsets 28/30, and have afp_smoke_suite.sh dump user.org.mars-nwe.netware.archive so reports prove that the WebSDK field is stored through the NetWare archive metadata path.

Tests: git diff --check; bash -n tests/linux/afp_smoke_suite.sh; gcc -Iinclude -I/mnt/data/stubs -fsyntax-only tests/linux/afp_set_file_info_smoke.c
2026-05-30 18:21:54 +02:00
OpenAI
3f3a3ce832 tests: record AFP WebSDK attribute bit smoke success
The AFP Set/Get File Information attribute path now follows the WebSDK attribute word instead of the earlier low-bit smoke placeholders.  Hidden, System, and Archive are mapped through the existing NetWare attribute store as FILE_ATTR_H, FILE_ATTR_S, and FILE_ATTR_A, while FinderInfo and Entry-ID remain AFP-specific metadata.

Record the runtime smoke result that verified the corrected bit layout.  The suite reports failures=0, exercises Hidden, System, and Archive set/clear with the documented 0x0200, 0x0400, and 0x2000 attribute bits, and confirms the SetInfo request bitmaps 0x0100 Attributes, 0x1000 Modify Date/Time, and 0x4000 FinderInfo.

Also document that user.org.mars-nwe.afp.attributes may legitimately be absent after this mapping: the tested attribute bits are no longer stored as AFP-only xattrs, so ENODATA in the optional xattr dump is expected when no AFP-only bits remain set.

Test status: based on the provided mars-afp-smoke report from 2026-05-30 18:04:21, which completed with failures=0 and preserved the expected FinderInfo, Entry-ID, Modify timestamp, DOS-name, Open Fork, SetInfo, and rights-negative coverage.
2026-05-30 18:11:10 +02:00
OpenAI
55fdf64c8e nwconn: align AFP attribute bits with WebSDK
All checks were successful
Source release / source-package (push) Successful in 46s
The WebSDK/NCP AFP File Information records use a distinct SetInfo request bitmap and attribute word.  The previous smoke-oriented implementation reused the low response-bit positions for Set Attributes, Modify Date/Time, FinderInfo, Hidden/Invisible, System, and Archive.  That made the current tests pass, but it was not faithful to the documented header semantics and risked keeping AFP metadata parallel to existing NetWare attributes.

Switch Set File Information to the documented request bitmap values: 0x0100 for Attributes, 0x1000 for Modify Date/Time, and 0x4000 for FinderInfo.  Switch the AFP attribute word to the documented NetWare-style bits: Hidden 0x0200, System 0x0400, Subdirectory 0x1000, and Archive 0x2000.

Map Hidden, System, and Archive through the existing NetWare attribute store via FILE_ATTR_H, FILE_ATTR_S, and FILE_ATTR_A.  This keeps AFP Set/Get/Scan aligned with mars_nwe's existing attribute helper instead of maintaining duplicate AFP-only xattr state.  FinderInfo remains AFP metadata and still uses the Modify-rights gate added earlier.

Update the Linux smoke helper and suite to use --hidden / --clear-hidden while keeping --invisible / --clear-invisible as compatibility aliases.  Document the corrected WebSDK bit values and the convergence rule that NetWare attributes must use mars_nwe NetWare helpers.

Tests: git diff --check; bash -n tests/linux/afp_smoke_suite.sh; gcc -Iinclude -I/mnt/data/stubs -fsyntax-only tests/linux/afp_set_file_info_smoke.c
2026-05-30 17:48:51 +02:00