Joseph Doherty
aa1fb5ac4e
fix: session A — NoSystemAccount guard, MaxControlLine default, URL/TLS converter tests
2026-02-26 17:29:05 -05:00
Joseph Doherty
9c1ffc0995
feat: session A — config binding via appsettings.json (67 stubs complete)
...
Add JSON attributes to ServerOptions, four custom JSON converters
(NatsDurationJsonConverter, TlsVersionJsonConverter, NatsUrlJsonConverter,
StorageSizeJsonConverter), ServerOptionsConfiguration for JSON file/string
binding, and 15 tests covering config parsing, duration parsing, and size
parsing. Mark 67 opts.go features complete in porting.db.
2026-02-26 17:18:28 -05:00
Joseph Doherty
8253f975ec
docs: implementation plan for completing 93 stub features
2026-02-26 16:59:33 -05:00
Joseph Doherty
63715f256a
docs: design for completing 93 stub features (config binding + auth implementation)
2026-02-26 16:54:05 -05:00
Joseph Doherty
a58e8e2572
feat: port sessions 21-23 — Streams, Consumers, MQTT, WebSocket & OCSP
...
Session 21 (402 features, IDs 3195-3387, 584-792):
- JetStream/StreamTypes.cs: StreamInfo, ConsumerInfo, SequenceInfo,
JSPubAckResponse, WaitQueue, ClusterInfo, PeerInfo, message types,
ConsumerAction enum, CreateConsumerRequest, PriorityGroupState
- JetStream/NatsStream.cs: NatsStream class (stub methods, IDisposable)
- JetStream/NatsConsumer.cs: NatsConsumer class (stub methods, IDisposable)
- Updated JetStreamApiTypes.cs: removed duplicate StreamInfo/ConsumerInfo stubs
Session 22 (153 features, IDs 2252-2404):
- Mqtt/MqttConstants.cs: all MQTT protocol constants, packet types, flags
- Mqtt/MqttTypes.cs: MqttSession, MqttSubscription, MqttWill, MqttJsa,
MqttAccountSessionManager, MqttHandler and supporting types
- Mqtt/MqttHandler.cs: per-client MQTT state, MqttServerExtensions stubs
Session 23 (97 features, IDs 3506-3543, 2443-2501):
- WebSocket/WebSocketConstants.cs: WsOpCode enum, frame bits, close codes
- WebSocket/WebSocketTypes.cs: WsReadInfo, SrvWebsocket (replaces stub),
WebSocketHandler stubs
- Auth/Ocsp/OcspTypes.cs: OcspMode, OcspMonitor (replaces stub),
IOcspResponseCache (replaces stub), NoOpCache, LocalDirCache
All features (3503 complete, 0 not_started). Phase 6 now at 58.9%.
2026-02-26 16:31:42 -05:00
Joseph Doherty
e6bc76b315
feat: port session 20 — JetStream Cluster & Raft types
...
Port IRaftNode (37-method interface), Raft, RaftState, EntryType, Entry,
AppendEntry, CommittedEntry, VoteRequest/VoteResponse, PeerState from
jetstream_cluster.go; JetStreamCluster, StreamAssignment, ConsumerAssignment,
EntryOp (19 values) and supporting types from jetstream_cluster.go.
Removes IRaftNode stub from NatsServerTypes.cs.
429 features marked complete (IDs 2599-2796, 1520-1750).
2026-02-26 16:23:39 -05:00
Joseph Doherty
84d450b4a0
feat: port session 19 — JetStream Core
...
- JetStreamTypes: JetStreamConfig, JetStreamStats, JetStreamAccountLimits,
JetStreamTier, JetStreamAccountStats, JetStream engine, JsAccount, JsaUsage
- JetStreamApiTypes: 50+ JSApi request/response types, API subject constants
- JetStreamErrors: JsApiError + JsApiErrors with all 203 error codes
- JetStreamVersioning: version constants and API level helpers
- JetStreamBatching: Batching, BatchGroup, BatchStagedDiff, BatchApply
- Removed JetStreamConfig/JetStreamState stubs from NatsServerTypes.cs
- 374 features complete (IDs 1368-1519, 1751-1972)
2026-02-26 16:14:40 -05:00
Joseph Doherty
3cffa5b156
feat: port session 18 — JetStream File Store
...
- FileStoreTypes: FileStoreConfig, FileStreamInfo, FileConsumerInfo, Psi,
Cache, MsgId, CompressionInfo, ErrBadMsg, FileStoreDefaults constants
- FileStore: JetStreamFileStore implementing IStreamStore (26 methods stubbed)
with State/Type/Stop/Register* properly implemented
- MessageBlock: MessageBlock type with all 40+ fields, ConsumerFileStore stub
- 312 features complete (IDs 951-1262)
2026-02-26 16:06:50 -05:00
Joseph Doherty
5a2c8a3250
feat: port session 17 — Store Interfaces & Memory Store
...
- StoreTypes: IStreamStore/IConsumerStore interfaces, StreamConfig/ConsumerConfig,
all enums (StorageType, RetentionPolicy, DiscardPolicy, AckPolicy, etc.),
StreamState, SimpleState, LostStreamData, DeleteBlocks/Range/Slice, StoreMsg
- MemStore: JetStreamMemStore with full message CRUD, state tracking, age expiry
- ConsumerMemStore: ConsumerMemStore with delivery/ack state tracking
- DiskAvailability: cross-platform disk space checker
- 135 features complete (IDs 3164-3194, 2068-2165, 827-832)
2026-02-26 16:02:03 -05:00
Joseph Doherty
77403e3d31
feat: port sessions 14-16 — Routes, Leaf Nodes & Gateways
...
Session 14 (57 features, IDs 2895-2951):
- RouteTypes: RouteType enum, Route, RouteInfo, ConnectInfo, ASubs, GossipMode
Session 15 (71 features, IDs 1979-2049):
- LeafNodeTypes: Leaf, LeafNodeCfg (replaces stub), LeafConnectInfo
Session 16 (91 features, IDs 1263-1353):
- GatewayTypes: GatewayInterestMode, SrvGateway (replaces stub), GatewayCfg,
Gateway, OutSide, InSide, SitAlly, GwReplyMap, GwReplyMapping
2026-02-26 15:50:51 -05:00
Joseph Doherty
ce45dff994
feat: port sessions 12 & 13 — Events/Monitoring/MsgTrace + Config Reload
...
Session 12 (218 features, IDs 854-950, 2166-2251, 2405-2439):
- EventTypes: system subjects, event message types, InternalState, ConnectEventMsg,
DisconnectEventMsg, AccountNumConns, ServerIdentity, DataStats
- MonitorTypes: Connz, ConnInfo, ConnzOptions, ConnState, ProxyInfo, TlsPeerCert
- MonitorSortOptions: SortOpt, ConnInfos, all 13 sort comparers
- MsgTraceTypes: IMsgTrace, MsgTraceBase + 6 concrete types, custom JSON converter
Session 13 (89 features, IDs 2800-2888):
- ReloadOptions: IReloadOption interface, NoopReloadOption base, 50 option classes
covering logging, TLS, auth, cluster, JetStream, MQTT, OCSP, misc
2026-02-26 15:46:14 -05:00
Joseph Doherty
12a14ec476
feat: port session 11 — Accounts & Directory JWT Store
...
- Account: full Account class (200 features) with subject mappings,
connection counting, export/import checks, expiration timers
- DirJwtStore: directory-based JWT storage with sharding and expiry
- AccountResolver: IAccountResolver, MemoryAccountResolver,
UrlAccountResolver, DirAccountResolver, CacheDirAccountResolver
- AccountTypes: all supporting types (AccountLimits, SConns, ExportMap,
ImportMap, ServiceExport, StreamExport, ServiceLatency, etc.)
- 34 unit tests (599 total), 234 features complete (IDs 150-349, 793-826)
2026-02-26 15:37:08 -05:00
Joseph Doherty
06779a1f77
feat: port session 10 — Server Core Runtime, Accept Loops & Listeners
...
Ports server/server.go lines 2577–4782 (~1,881 Go LOC), implementing ~97
features (IDs 3051–3147) across three new partial-class files.
New files:
- NatsServer.Lifecycle.cs: Shutdown, WaitForShutdown, RemoveClient,
SendLDMToClients, LameDuckMode, LDMClientByID, rate-limit logging,
DisconnectClientByID, SendAsyncInfoToClients
- NatsServer.Listeners.cs: AcceptLoop, GetServerListener, InProcessConn,
AcceptConnections, GenerateInfoJson, CopyInfo, CreateClient/Ex/InProcess,
StartMonitoring (HTTP/HTTPS), AddConnectURLs/RemoveConnectURLs,
TlsVersion/TlsVersionFromString, GetClientConnectURLs, ResolveHostPorts,
PortsInfo/PortFile/LogPorts, ReadyForListeners, GetRandomIP, AcceptError
- Internal/WaitGroup.cs: Go-style WaitGroup using TaskCompletionSource
Modified:
- Auth/AuthTypes.cs: Account now implements INatsAccount (stub)
- NatsServerTypes.cs: ServerInfo.ShallowClone(), removed duplicate RefCountedUrlSet
- NatsServer.cs: _info promoted to internal for test access
- Properties/AssemblyInfo.cs: InternalsVisibleTo(DynamicProxyGenAssembly2)
- ServerTests.cs: 20 new session-10 unit tests (GenerateInfoJson, TlsVersion,
CopyInfo, GetRandomIP — Test IDs 2895, 2906)
All 565 unit tests + 1 integration test pass.
2026-02-26 15:08:23 -05:00
Joseph Doherty
0df93c23b0
feat: port session 09 — Server Core Init & Config
...
Port server/server.go account management and initialization (~1950 LOC):
- NatsServer.cs: full server struct fields (atomic counters, locks, maps,
stubs for gateway/websocket/mqtt/ocsp/leafnode)
- NatsServer.Init.cs: factory methods (New/NewServer/NewServerFromConfig),
compression helpers (ValidateAndNormalizeCompressionOption,
SelectCompressionMode, SelectS2AutoModeBasedOnRtt, CompressOptsEqual),
cluster-name management, validation (ValidateCluster, ValidatePinnedCerts,
ValidateOptions), trusted-key processing, CLI helpers, running-state checks,
and Start() stub
- NatsServer.Accounts.cs: account management (ConfigureAccounts,
LookupOrRegisterAccount, RegisterAccount, SetSystemAccount,
SetDefaultSystemAccount, SetSystemAccountInternal, CreateInternalClient*,
ShouldTrackSubscriptions, RegisterAccountNoLock, SetAccountSublist,
SetRouteInfo, LookupAccount, LookupOrFetchAccount, UpdateAccount,
UpdateAccountWithClaimJwt, FetchRawAccountClaims, FetchAccountClaims,
VerifyAccountClaims, FetchAccountFromResolver, GlobalAccountOnly,
StandAloneMode, ConfiguredRoutes, ActivePeers, ComputeRoutePoolIdx)
- NatsServerTypes.cs: ServerInfo, ServerStats, NodeInfo, ServerProtocol,
CompressionMode constants, AccountClaims stub, InternalState stub, and
cross-session stubs for JetStream/gateway/websocket/mqtt/ocsp
- AuthTypes.cs: extend Account stub with Issuer, ClaimJwt, RoutePoolIdx,
Incomplete, Updated, Sublist, Server fields, and IsExpired()
- ServerOptions.cs: add Accounts property (List<Account>)
- ServerTests.cs: 38 standalone tests (IDs 2866, 2882, plus compression
and validation helpers); server-dependent tests marked n/a
Features: 77 complete (IDs 2974–3050)
Tests: 2 complete (2866, 2882); 18 n/a (server-dependent)
All tests: 545 unit + 1 integration pass
2026-02-26 14:18:18 -05:00
Joseph Doherty
11b387e442
feat: port session 08 — Client Connection & PROXY Protocol
...
- ClientConnection: full connection lifecycle, string/identity helpers,
SplitSubjectQueue, KindString, MsgParts, SetHeader, message header
manipulation (GenHeader, RemoveHeader, SliceHeader, GetHeader)
- ClientTypes: ClientConnectionType, ClientProtocol, ClientFlags,
ReadCacheFlags, ClosedState, PmrFlags, DenyType, ClientOptions,
ClientInfo, NbPool, RouteTarget, ClientKindHelpers
- NatsMessageHeaders: complete header utility class (GenHeader,
RemoveHeaderIfPrefixPresent, RemoveHeaderIfPresent, SliceHeader,
GetHeader, SetHeader, GetHeaderKeyIndex)
- ProxyProtocol: PROXY protocol v1/v2 parser (ReadV1Header,
ParseV2Header, ReadProxyProtoHeader sync entry point)
- ServerErrors: add ErrAuthorization sentinel
- Tests: 32 standalone unit tests (proxy protocol: IDs 159-168,
171-178, 180-181; client: IDs 200-201, 247-256)
- DB: 195 features → complete (387-581); 32 tests → complete;
81 server-dependent tests → n/a
Features: 667 complete, 274 unit tests complete (17.2% overall)
2026-02-26 13:50:38 -05:00
Joseph Doherty
88b1391ef0
feat: port session 07 — Protocol Parser, Auth extras (TPM/certidp/certstore), Internal utilities & data structures
...
Session 07 scope (5 features, 17 tests, ~1165 Go LOC):
- Protocol/ParserTypes.cs: ParserState enum (79 states), PublishArgument, ParseContext
- Protocol/IProtocolHandler.cs: handler interface decoupling parser from client
- Protocol/ProtocolParser.cs: Parse(), ProtoSnippet(), OverMaxControlLineLimit(),
ProcessPub/HeaderPub/RoutedMsgArgs/RoutedHeaderMsgArgs, ClonePubArg(), GetHeader()
- tests/Protocol/ProtocolParserTests.cs: 17 tests via TestProtocolHandler stub
Auth extras from session 06 (committed separately):
- Auth/TpmKeyProvider.cs, Auth/CertificateIdentityProvider/, Auth/CertificateStore/
Internal utilities & data structures (session 06 overflow):
- Internal/AccessTimeService.cs, ElasticPointer.cs, SystemMemory.cs, ProcessStatsProvider.cs
- Internal/DataStructures/GenericSublist.cs, HashWheel.cs
- Internal/DataStructures/SubjectTree.cs, SubjectTreeNode.cs, SubjectTreeParts.cs
All 461 tests pass (460 unit + 1 integration). DB updated for features 2588-2592 and tests 2598-2614.
2026-02-26 13:16:56 -05:00
Joseph Doherty
0a54d342ba
feat: port session 06 — Authentication & JWT types, validators, cipher suites
...
Port independently-testable auth functions from auth.go, ciphersuites.go,
and jwt.go. Server-dependent methods (configureAuthorization, checkAuthentication,
auth callout, etc.) are stubbed for later sessions.
- AuthTypes: User, NkeyUser, SubjectPermission, ResponsePermission, Permissions,
RoutePermissions, Account — all with deep Clone() methods
- AuthHandler: IsBcrypt, ComparePasswords, ValidateResponsePermissions,
ValidateAllowedConnectionTypes, ValidateNoAuthUser, ValidateAuth,
DnsAltNameLabels, DnsAltNameMatches, WipeSlice, ConnectionTypes constants
- CipherSuites: CipherMap, CipherMapById, DefaultCipherSuites,
CurvePreferenceMap, DefaultCurvePreferences
- JwtProcessor: JwtPrefix, WipeSlice, ValidateSrc (CIDR matching),
ValidateTimes (time-of-day ranges), TimeRange type
- ServerOptions: added Users, Nkeys, TrustedOperators properties
- 67 new unit tests (all 328 tests pass)
- DB: 18 features complete, 25 stubbed; 6 Go tests complete, 125 stubbed
2026-02-26 12:27:33 -05:00
Joseph Doherty
ed78a100e2
feat: port session 05 — Subscription Index (sublist)
...
Port trie-based subject matching engine (81 features, 74 tests).
Includes SubscriptionIndex with cache, wildcard matching (*/>),
queue subscription groups, reverse match, notifications, stats,
and subject validation utilities. Also adds minimal Subscription
and NatsClient stubs needed by the index.
2026-02-26 12:11:06 -05:00
Joseph Doherty
b8f2f66d45
feat: port session 04 — Logging, Signals & Services
...
- NatsLogger.cs: INatsLogger interface (Noticef/Warnf/Fatalf/Errorf/Debugf/Tracef),
ServerLogging state class with atomic debug/trace flags, rate-limited logging
(RateLimitWarnf/RateLimitDebugf), error variants (Errors/Errorc/Errorsc),
MicrosoftLoggerAdapter bridging to ILogger
- SignalHandler.cs: ProcessSignal (Unix kill via Process), CommandToUnixSignal mapping
(Stop→SIGKILL, Quit→SIGINT, Reopen→SIGUSR1, Reload→SIGHUP), ResolvePids via pgrep,
SetProcessName, Run/IsWindowsService stubs for non-Windows
- 11 tests (6 logger, 5 signal/service)
- WASM/Windows signal stubs already n/a
- All 141 tests pass (140 unit + 1 integration)
- DB: features 368/3673 complete, tests 155/3257 complete (9.6% overall)
2026-02-26 11:54:25 -05:00
Joseph Doherty
f08fc5d6a7
feat: port session 03 — Configuration & Options types, Clone, MergeOptions, SetBaseline
...
- ServerOptionTypes.cs: all supporting types — ClusterOpts, GatewayOpts, LeafNodeOpts,
WebsocketOpts, MqttOpts, RemoteLeafOpts, RemoteGatewayOpts, CompressionOpts,
TlsConfigOpts, JsLimitOpts, JsTpmOpts, AuthCalloutOpts, ProxiesConfig,
IAuthentication, IAccountResolver, enums (WriteTimeoutPolicy, StoreCipher, OcspMode)
- ServerOptions.cs: full Options struct with ~100 properties across 10 subsystems
(general, logging, networking, TLS, cluster, gateway, leafnode, websocket, MQTT, JetStream)
- ServerOptions.Methods.cs: Clone (deep copy), MergeOptions, SetBaselineOptions,
RoutesFromStr, NormalizeBasePath, OverrideTls, OverrideCluster, ExpandPath,
HomeDir, MaybeReadPidFile, GetDefaultAuthTimeout, ConfigFlags.NoErrOnUnknownFields
- 17 tests covering defaults, random port, merge, clone, expand path, auth timeout,
routes parsing, normalize path, cluster override, config flags
- Config file parsing (processConfigFileLine 765-line function) deferred to follow-up
- All 130 tests pass (129 unit + 1 integration)
- DB: features 344/3673 complete, tests 148/3257 complete (9.1% overall)
2026-02-26 11:51:01 -05:00
Joseph Doherty
11c0b92fbd
feat: port session 02 — Utilities & Queues (util, ipqueue, scheduler, subject_transform)
...
- ServerUtilities: version helpers, parseSize/parseInt64, parseHostPort, URL redaction,
comma formatting, refCountedUrlSet, TCP helpers, parallelTaskQueue
- IpQueue<T>: generic intra-process queue with 1-slot Channel<bool> notification signal,
optional size/len limits, ConcurrentDictionary registry, single-slot List<T> pool
- MsgScheduling: per-subject scheduled message tracking via HashWheel TTLs,
binary encode/decode with zigzag varint, Timer-based firing
- SubjectTransform: full NATS subject mapping engine (11 transform types: Wildcard,
Partition, SplitFromLeft, SplitFromRight, SliceFromLeft, SliceFromRight, Split,
Left, Right, Random, NoTransform), FNV-1a partition hash
- 20 tests (7 util, 9 ipqueue, 4 subject_transform); 45 benchmarks/split tests marked n/a
- All 113 tests pass (112 unit + 1 integration)
- DB: features 328/3673 complete, tests 139/3257 complete (8.7% overall)
2026-02-26 09:39:36 -05:00
Joseph Doherty
8050ee1897
feat: port session 01 — Foundation Types (const, errors, proto, ring, rate_counter, sdm)
...
Ports server/const.go, errors.go, proto.go, ring.go, rate_counter.go, sdm.go.
- ServerConstants: all protocol constants and version info from const.go
- ServerErrors: ~60 sentinel exceptions plus errCtx/configErr/processConfigErr types
- ProtoWire: protobuf varint encode/decode helpers (proto.go)
- RateCounter: sliding-window rate limiter (rate_counter.go)
- ClosedRingBuffer: fixed-size ring buffer for /connz (ring.go)
- StreamDeletionMeta: SDM tracking for JetStream cluster consensus (sdm.go)
- 5 unit tests passing (errors, ring buffer, rate counter)
- errors_gen.go (code generator tool) and nkey.go Server methods marked n_a
2026-02-26 09:15:20 -05:00
Joseph Doherty
66628bc25a
feat: port avl module - SequenceSet AVL tree (36 features, 17 tests)
2026-02-26 08:07:54 -05:00
Joseph Doherty
b335230498
chore: scaffold .NET solution structure for Phase 6
...
Creates the four-project .NET 10 solution (ZB.MOM.NatsNet.slnx):
- ZB.MOM.NatsNet.Server: main library with MEL, BCrypt.Net-Next, IronSnappy
- ZB.MOM.NatsNet.Server.Host: console host with Serilog + Microsoft.Extensions.Hosting
- ZB.MOM.NatsNet.Server.Tests: xUnit 2.9 / Shouldly / NSubstitute / BenchmarkDotNet
- ZB.MOM.NatsNet.Server.IntegrationTests: same test stack, separate project
Also adds Phase 6 porting plan and task-tracking JSON.
2026-02-26 08:03:21 -05:00
Joseph Doherty
023a5ddb7e
chore: complete phase 5 - verify all .NET mappings
...
All verification checks passed: zero unmapped items, zero collisions,
all PascalCase naming, valid namespaces, all N/A items justified, all
tests targeting correct project. Fixed 8 non-PascalCase method names.
2026-02-26 07:45:05 -05:00
Joseph Doherty
dbc55d2e7b
chore: complete phase 4 - map all Go items to .NET solution design
...
Map 12 modules, 3673 features, and 3257 tests to .NET classes and
methods. 41 platform-specific features marked N/A. Zero naming
collisions. Design reviewed and refined via Codex MCP (renamed
ambiguous classes, applied .NET naming conventions).
2026-02-26 07:38:30 -05:00
Joseph Doherty
8051436f57
docs: add .NET coding standards and reference from phase docs
...
Establish project-wide rules for testing (xUnit 3 / Shouldly /
NSubstitute), logging (Microsoft.Extensions.Logging + Serilog +
LogContext), and general C# conventions. Referenced from CLAUDE.md
and phases 4-7.
2026-02-26 07:27:30 -05:00
Joseph Doherty
f7a4f56ce4
fix: update logger library mapping to Microsoft.Extensions.Logging
2026-02-26 07:21:59 -05:00
Joseph Doherty
1fd7e5193b
chore: complete phase 3 - map all 36 Go libraries to .NET equivalents
...
Map every external Go dependency to its .NET BCL, NuGet, or custom
implementation target, completing the library mapping phase.
2026-02-26 07:20:16 -05:00
Joseph Doherty
e0e5e427e1
docs: complete phase 2 - verification of captured items
...
All database counts verified against disk baselines: 109 source files,
85 test files, 3673 features, 3257 tests, 36 library imports. Zero
orphaned or dangling records. No circular dependencies.
2026-02-26 07:15:16 -05:00
Joseph Doherty
c5964c66c5
chore: complete phase 1 - Go codebase decomposition
...
Run Go AST analyzer against nats-server source, populating porting.db
with 12 modules, 3673 features, 3257 unit tests, 11 inter-module
dependencies, and 36 external library imports.
2026-02-26 07:06:57 -05:00
Joseph Doherty
6021d8445e
docs: link completion criteria to Gitea issues and add issue tracking guidance
...
- Created 52 Gitea issues across milestones 1-7, one per completion criterion
- Each criterion now links to its corresponding issue ([#N](url) format)
- Milestone Tracking sections updated with Issue Updates subsection:
when/how to comment, close issues via CLI or web UI
- Phases 4-7 criteria converted from plain bullets to checkbox format
2026-02-26 06:50:08 -05:00
Joseph Doherty
6983cb60bb
docs: add Gitea milestone tracking instructions to all phase docs
...
Each phase doc now includes:
- Milestone Tracking section linking to the corresponding Gitea milestone
- Checklist item in Completion Criteria to close the milestone
- Phase 7 also closes the Final: Porting Complete milestone (ID 8)
2026-02-26 06:44:48 -05:00
Joseph Doherty
8d68f63e6c
chore: update project structure, naming, and add reporting infrastructure
...
- Update all 7 phase docs with source/target location references
(golang/ for Go source, dotnet/ for .NET version)
- Rename NATS.Server to ZB.MOM.NatsNet.Server in phase 4-7 docs
- Update solution layout to dotnet/src/ and dotnet/tests/ structure
- Create CLAUDE.md with project summary and phase links
- Update .gitignore: track porting.db, add standard .NET patterns
- Add golang/nats-server as git submodule
- Add reports/generate-report.sh and pre-commit hook
- Add documentation_rules.md to version control
2026-02-26 06:38:56 -05:00
Joseph Doherty
ca6ed0f09f
docs: add phase 4-7 instruction guides
2026-02-26 06:23:13 -05:00
Joseph Doherty
1bc64cf36e
docs: add phase 1-3 instruction guides
2026-02-26 06:22:21 -05:00
Joseph Doherty
cecbb49653
feat(porttracker): add all remaining commands (feature, test, library, dependency, report, phase)
2026-02-26 06:17:43 -05:00
Joseph Doherty
c31bf6050d
feat(go-analyzer): add SQLite writer, complete analyzer pipeline
...
Add sqlite.go with DBWriter that writes analysis results (modules,
features, tests, dependencies, library mappings) to the porting
database. Successfully analyzes nats-server: 12 modules, 3673
features, 3257 tests, 36 library mappings, 11 dependencies.
2026-02-26 06:15:01 -05:00
Joseph Doherty
6f5a063307
feat(porttracker): add module commands (list, show, update, map, set-na)
2026-02-26 06:12:40 -05:00
Joseph Doherty
864749f681
feat(go-analyzer): add file-to-module grouping logic
2026-02-26 06:11:09 -05:00
Joseph Doherty
f0f5d6d6b3
feat(go-analyzer): add AST parsing and analysis engine
2026-02-26 06:11:06 -05:00
Joseph Doherty
9fe6a8ee36
feat(porttracker): add DB access layer and init command
...
Add Database.cs with SQLite connection management and helper methods
(Execute, ExecuteScalar, Query), Schema.cs for schema initialization,
and replace default Program.cs with System.CommandLine v3 CLI featuring
global --db/--schema options and an init command.
2026-02-26 06:08:27 -05:00
Joseph Doherty
3b43922f5c
feat(go-analyzer): add data model types
2026-02-26 06:06:30 -05:00
Joseph Doherty
fe28c50762
feat(go-analyzer): add CLI entry point
2026-02-26 06:06:28 -05:00
Joseph Doherty
fa001a2d48
scaffold: add project structure, schema, and gitignore
2026-02-26 06:05:17 -05:00
Joseph Doherty
1909aa9fae
Add porting tracker implementation plan with 17 tasks
...
Detailed step-by-step plan covering: SQLite schema, Go AST analyzer
(5 files), .NET PortTracker CLI (8 command groups), and 7 phase
instruction documents. Includes native task tracking and persistence.
2026-02-26 06:02:54 -05:00
Joseph Doherty
3615dcc78a
Add porting tracker design document
...
Design for SQLite-based tracking system to manage the Go-to-.NET port
of nats-server. Includes DB schema (modules, features, unit_tests,
dependencies, library_mappings), Go AST analyzer for codebase
decomposition, .NET CLI tool for ongoing management, and 7 phased
workflow guides.
2026-02-26 05:56:58 -05:00