SFPACK32 v0.6.0 Beta 1
======================

Release date: August 4, 2026

SFPACK32 is a native 32-bit Windows message-base packer for Spitfire v3.7.
It safely purges messages already marked for deletion while adding backups,
dry runs, structural checks, staging, verification, rollback protection, and a
shared SFTOSS.BSY lock.

This is the public beta package. The packing engine is unchanged from the
closed-beta build that completed production dry runs and the earlier XP lab
write tests. The executable was rebuilt only to change two CLOSED BETA labels
to PUBLIC BETA; the compiled .text code section is byte-for-byte identical.

LAZY SYSOP'S GUIDE
------------------

1. Make a current external backup of:

       C:\SF\SFMCONF.DAT
       C:\SF\MESSAGE\  (the entire directory)

2. Confirm the old packing paths are disabled:

       Event M is disabled
       C:\SF\SFPCKMSG.COM is removed from the active Spitfire home
       Pack Message Base is removed from SFSYSOP.MNU

3. Copy SFPACK32.EXE into the Spitfire home directory, normally C:\SF.

4. Shut down every Spitfire node and prevent caller access.

5. Preview everything:

       CD /D C:\SF
       SFPACK32 /ALL /DRYRUN

6. Read the summary and C:\SF\SFPACK32_REPORT.TXT. Do not write a conference
   marked BLOCKED. Select only safe conferences when needed:

       SFPACK32 /CONF1..6 /WRITE

   When every selected conference is safe, the full command is:

       SFPACK32 /ALL /WRITE

7. Wait for both of these lines:

       WRITE RESULT: SUCCESS
       Shared SFTOSS.BSY lock: RELEASED.

8. Restart the nodes, read several messages, and verify normal operation. Keep
   the timestamped SFPACK32 backup until the BBS has run normally for several
   days.

THAT IS THE WHOLE LAZY GUIDE.

IMPORTANT SAFETY RULES
----------------------

* /DRYRUN never changes the message base.
* /WRITE is required before SFPACK32 can change anything.
* Every write creates and verifies a timestamped backup first.
* Every run acquires MESSAGE\SFTOSS.BSY so SFToss32 cannot overlap it.
* SFPACK32 does not shut down Spitfire nodes or block new caller connections.
* Never run /WRITE while any Spitfire node can accept callers.
* Do not manually delete SFTOSS.BSY until neither SFPACK32 nor SFToss32 is
  running.

COMMON COMMANDS
---------------

  SFPACK32 /?                         Paged command help
  SFPACK32 /VERSION                   Display version
  SFPACK32 /ALL /DRYRUN               Preview all conferences
  SFPACK32 /ALL /DRYRUN /V            Full diagnostic preview
  SFPACK32 /CONF2 /DRYRUN             Preview conference 2
  SFPACK32 /CONF1..6 /WRITE           Pack conferences 1 through 6
  SFPACK32 /ALL /WRITE                Pack all safe selected conferences

Reports are concise by default. Add /V or /VERBOSE for full diagnostics.
The default report is appended to C:\SF\SFPACK32_REPORT.TXT.

WHAT SFPACK32 DOES
------------------

In selected conferences SFPACK32:

* purges only messages marked Deleted=1
* preserves bodyless messages
* rebuilds DAT contiguously and updates PTR body locations
* rebuilds IDX identity fields while preserving validated CRC bytes
* fixes only the proven SFTHREADFIX-v4 DANGER state
* clears a retained reply link when its deleted parent is removed
* preserves valid roots and root-without-child metadata
* stages and verifies .NEW files before commit
* creates and verifies a timestamped backup
* verifies the final message base and rolls back after detected failure

Unsafe structures such as overlapping DAT ranges are blocked rather than
speculatively repaired.

BACKUP LOCATION
---------------

  C:\SF\SFPACK32-BACKUPS\SFPACK32-YYYYMMDD-HHMMSS\

A write backup includes SFMCONF.DAT when present, SFOUTBOUND.SEQ when present,
and every affected conference file. Backups are mandatory in this version.

INSTALLATION AND PLATFORM
-------------------------

No installer, DLL, .NET runtime, PowerShell, registry entry, service, or
administrator access is required.

Build target:

* PE32 Intel i386 console application
* Windows OS and subsystem version 5.01
* KERNEL32.DLL only
* intended for Windows XP SP2 32-bit through Windows 10 32-bit

MORE INFORMATION
----------------

The docs folder contains the small set of files most sysops may need:

  WHATS_NEW.txt           Public beta and packaging changes
  BETA_TESTING.txt        Safe test order and bug-report details
  KNOWN_LIMITATIONS.txt   Current boundaries
  SAFETY_AND_BACKUPS.txt  Write safety and restore procedure
  SHA256_MANIFEST.txt     Package file hashes

Complete source, build scripts, dependency details, and validation material are
under source. Ordinary sysops do not need that folder to run SFPACK32.
