updated track_progress

restored accidentally deleted source file.
This commit is contained in:
Stan44 2025-05-11 21:02:40 -05:00
parent d5c8fd1bf8
commit 8a6f9144c4
4 changed files with 171 additions and 22 deletions

View File

@ -44,6 +44,7 @@
- Status: completed
- Description: Explicit synchronization and concurrent collections
- Last Update: 2025-05-11
- Updated By: Stan44
## spatial_interfaces
- Status: completed
@ -55,6 +56,11 @@
- Description: Parallel processing of chunks based on spatial queries and regions
- Last Update: 2025-05-11
## feature_tracking
- Status: completed
- Description: Track feature statuses
- Last Update: 2025-05-11
## priority_loading
- Status: in_progress
- Description: Prioritized chunk loading system (partially implemented)
@ -62,12 +68,12 @@
## dependency_tracking
- Status: in_progress
- Description: Dependency-aware disposal logic
- Description: Dependency-aware disposal logic (Partially Implemented)
- Last Update: 2025-05-10
## dispose_pattern
- Status: in_progress
- Description: Full dispose pattern with finalizers for unmanaged resources
- Description: Full dispose pattern with finalizers for unmanaged resources (Partially Implemented)
- Last Update: 2025-05-10
## exception_handling
@ -82,29 +88,19 @@
## progress_tracking
- Status: in_progress
- Description: Track progress and auto-update status documents (mostly implemented)
- Last Update: 2025-05-10
- Description: Track progress and auto-update status documents (mostly implemented kinda still manual...)
- Last Update: 2025-05-11
## git_integration
- Status: in_progress
- Description: Parse Git logs for status updates (partially implemented)
- Last Update: 2025-05-10
## feature_tracking
- Status: in_progress
- Description: Track feature statuses (partially implemented)
- Last Update: 2025-05-10
- Description: Parse Git logs for status updates (partially implemented testing with this push.)
- Last Update: 2025-05-11
## doc_generation
- Status: in_progress
- Description: Auto-generate status docs and changelog (partially implemented)
- Last Update: 2025-05-10
## todo_management
- Status: in_progress
- Description: Automate updates based on code reviews and commits
- Last Update: 2025-05-10
## dependency_interfaces
- Status: planned
- Description: Interface-level dependency methods

View File

@ -2,6 +2,51 @@
Last updated: 2025-05-11
## Code Statistics
Total lines of code: **7331**
Number of source files: **34**
### All Files by Line Count
| File | Lines | Path |
|------|------:|------|
| SpatialChunkIndex.cs | 1228 | src/AdvChkSys\Spatial\SpatialChunkIndex.cs |
| ChunkLoadingPriority.cs | 677 | src/AdvChkSys\Loading\ChunkLoadingPriority.cs |
| ChunkThreadingExtensions.cs | 380 | src/AdvChkSys\Threading\ChunkThreadingExtensions.cs |
| ChunkManager2D.cs | 313 | src/AdvChkSys\Manager\ChunkManager2D.cs |
| ChunkDependencyTracker.cs | 310 | src/AdvChkSys\Dependencies\ChunkDependencyTracker.cs |
| ChunkTaskScheduler.cs | 310 | src/AdvChkSys\Threading\ChunkTaskScheduler.cs |
| ChunkThreadingManager.cs | 281 | src/AdvChkSys\Threading\ChunkThreadingManager.cs |
| ChunkOperationQueue.cs | 274 | src/AdvChkSys\Threading\ChunkOperationQueue.cs |
| ChunkThreadingDiagnostics.cs | 273 | src/AdvChkSys\Threading\ChunkThreadingDiagnostics.cs |
| ChunkThreadingPerformanceMonitor.cs | 257 | src/AdvChkSys\Threading\ChunkThreadingPerformanceMonitor.cs |
| ChunkParallelProcessor.cs | 252 | src/AdvChkSys\Threading\ChunkParallelProcessor.cs |
| ChunkManager3D.cs | 244 | src/AdvChkSys\Manager\ChunkManager3D.cs |
| ChunkThreadSafetyManager.cs | 237 | src/AdvChkSys\Threading\ChunkThreadSafetyManager.cs |
| ChunkThreadingExtensions2.cs | 223 | src/AdvChkSys\Threading\ChunkThreadingExtensions2.cs |
| Chunk3D.cs | 215 | src/AdvChkSys\Chunk\Chunk3D.cs |
| ChunkSerializer.cs | 194 | src/AdvChkSys\Serialization\ChunkSerializer.cs |
| Chunk2D.cs | 174 | src/AdvChkSys\Chunk\Chunk2D.cs |
| LimitedConcurrencyTaskScheduler.cs | 170 | src/AdvChkSys\Threading\LimitedConcurrencyTaskScheduler.cs |
| ChunkAsyncLock.cs | 167 | src/AdvChkSys\Threading\ChunkAsyncLock.cs |
| AdvChkSys.cs | 162 | src/AdvChkSys\AdvChkSys.cs |
| MemoryUsageReporter.cs | 140 | src/AdvChkSys\Diagnostics\MemoryUsageReporter.cs |
| LRUCache.cs | 135 | src/AdvChkSys\Util\LRUCache.cs |
| ChunkEvents.cs | 126 | src/AdvChkSys\Events\ChunkEvents.cs |
| MemoryHelper.cs | 101 | src/AdvChkSys\Util\MemoryHelper.cs |
| ChunkThreadingConfiguration.cs | 98 | src/AdvChkSys\Threading\ChunkThreadingConfiguration.cs |
| ChunkResourceManager.cs | 72 | src/AdvChkSys\Resources\ChunkResourceManager.cs |
| WorldConstraints.cs | 67 | src/AdvChkSys\Constraints\WorldConstraints.cs |
| ChunkTaskSchedulerExtensions.cs | 63 | src/AdvChkSys\Threading\ChunkTaskSchedulerExtensions.cs |
| ChunkExtensions.cs | 40 | src/AdvChkSys\Spatial\ChunkExtensions.cs |
| IChunkManager.cs | 38 | src/AdvChkSys\Interfaces\IChunkManager.cs |
| IChunk.cs | 36 | src/AdvChkSys\Interfaces\IChunk.cs |
| CacheCapacityHelper.cs | 30 | src/AdvChkSys\Util\CacheCapacityHelper.cs |
| AdvChkSys.AssemblyInfo.cs | 22 | src/AdvChkSys\obj\Debug\netstandard2.1\AdvChkSys.AssemblyInfo.cs |
| AdvChkSys.AssemblyInfo.cs | 22 | src/AdvChkSys\obj\Release\netstandard2.1\AdvChkSys.AssemblyInfo.cs |
## Feature Status
| Feature | Status | Description | Last Update |
@ -17,16 +62,15 @@ Last updated: 2025-05-11
| Thread Sync | [COMPLETED] | Explicit synchronization and concurrent collections | 2025-05-11 |
| Spatial Interfaces | [COMPLETED] | Interface-level spatial query methods with support for custom filters | 2025-05-11 |
| Parallel Processing | [COMPLETED] | Parallel processing of chunks based on spatial queries and regions | 2025-05-11 |
| Feature Tracking | [COMPLETED] | Track feature statuses | 2025-05-11 |
| Priority Loading | [IN PROGRESS] | Prioritized chunk loading system (partially implemented) | 2025-05-10 |
| Dependency Tracking | [IN PROGRESS] | Dependency-aware disposal logic | 2025-05-10 |
| Dispose Pattern | [IN PROGRESS] | Full dispose pattern with finalizers for unmanaged resources | 2025-05-10 |
| Dependency Tracking | [IN PROGRESS] | Dependency-aware disposal logic (Partially Implemented) | 2025-05-10 |
| Dispose Pattern | [IN PROGRESS] | Full dispose pattern with finalizers for unmanaged resources (Partially Implemented) | 2025-05-10 |
| Exception Handling | [IN PROGRESS] | Better async exception handling with specific types and logging | 2025-05-10 |
| Performance Metrics | [IN PROGRESS] | Track load times, cache hit rates, and memory usage (partially implemented) | 2025-05-10 |
| Progress Tracking | [IN PROGRESS] | Track progress and auto-update status documents (mostly implemented) | 2025-05-10 |
| Git Integration | [IN PROGRESS] | Parse Git logs for status updates (partially implemented) | 2025-05-10 |
| Feature Tracking | [IN PROGRESS] | Track feature statuses (partially implemented) | 2025-05-10 |
| Progress Tracking | [IN PROGRESS] | Track progress and auto-update status documents (mostly implemented kinda still manual...) | 2025-05-11 |
| Git Integration | [IN PROGRESS] | Parse Git logs for status updates (partially implemented testing with this push.) | 2025-05-11 |
| Doc Generation | [IN PROGRESS] | Auto-generate status docs and changelog (partially implemented) | 2025-05-10 |
| Todo Management | [IN PROGRESS] | Automate updates based on code reviews and commits | 2025-05-10 |
| Dependency Interfaces | [PLANNED] | Interface-level dependency methods | 2025-05-10 |
| Runtime Config | [PLANNED] | Runtime-adjustable configuration options | 2025-05-10 |
| Known Issues | [IN PROGRESS] | Edge chunk unload delay under high concurrency | 2025-05-10 |

View File

@ -20,10 +20,41 @@ CHANGELOG_TAG_RE = re.compile(r"\[changelog:(.+?)\]")
FEATURE_TAG_RE = re.compile(r"\[feature:(\w+)\]")
NEW_FEATURE_RE = re.compile(r"\[new-feature:(\w+):(.+?)\]")
# Ensure directories exist
os.makedirs(os.path.dirname(STATUS_DOC), exist_ok=True)
os.makedirs(os.path.dirname(FEATURES_FILE), exist_ok=True)
def count_lines_of_code():
"""Count lines of code in the project and return statistics."""
import os
import glob
stats = {}
total_lines = 0
file_stats = []
# Find all .cs files in the src/AdvChkSys directory and subdirectories
cs_files = glob.glob("src/AdvChkSys/**/*.cs", recursive=True)
for file_path in cs_files:
with open(file_path, "r", encoding="utf-8", errors="ignore") as f:
lines = len(f.readlines())
total_lines += lines
file_name = os.path.basename(file_path)
file_stats.append((file_name, lines, file_path))
# Sort by line count in descending order
file_stats.sort(key=lambda x: x[1], reverse=True)
stats["total_lines"] = total_lines
stats["file_count"] = len(cs_files)
stats["files"] = file_stats
return stats
# Load features from Markdown file if it exists
features = {}
if os.path.exists(FEATURES_FILE):
@ -169,6 +200,21 @@ with open(STATUS_DOC, "w", encoding="utf-8") as f:
f.write("# AdvChkSys Development Status\n\n")
f.write(f"Last updated: {datetime.now().strftime('%Y-%m-%d')}\n\n")
# Add code statistics section
f.write("## Code Statistics\n\n")
code_stats = count_lines_of_code()
f.write(f"Total lines of code: **{code_stats['total_lines']}**\n\n")
f.write(f"Number of source files: **{code_stats['file_count']}**\n\n")
f.write("### All Files by Line Count\n\n")
f.write("| File | Lines | Path |\n")
f.write("|------|------:|------|\n")
for file_name, lines, file_path in code_stats["files"]:
f.write(f"| {file_name} | {lines} | {file_path} |\n")
f.write("\n")
f.write("## Feature Status\n\n")
f.write("| Feature | Status | Description | Last Update |\n")
f.write("|---------|--------|-------------|-------------|\n")

View File

@ -0,0 +1,63 @@
#nullable enable
using System;
using System.Threading;
using System.Threading.Tasks;
namespace AdvChkSys.Threading
{
/// <summary>
/// Provides additional methods for the ChunkTaskScheduler.
/// </summary>
public static class ChunkTaskSchedulerExtensions
{
/// <summary>
/// Maximum degree of parallelism for chunk operations.
/// </summary>
public static int MaxDegreeOfParallelism { get; set; } = Environment.ProcessorCount;
/// <summary>
/// Runs a batch of actions in parallel.
/// </summary>
/// <param name="actions">The actions to run</param>
/// <param name="maxDegreeOfParallelism">Maximum degree of parallelism (null for default)</param>
/// <param name="cancellationToken">Cancellation token</param>
/// <returns>A task that completes when all actions are done</returns>
public static Task RunBatchParallelAsync(
Action[] actions,
int? maxDegreeOfParallelism = null,
CancellationToken cancellationToken = default)
{
if (actions == null || actions.Length == 0)
return Task.CompletedTask;
return Task.Run(() =>
{
var options = new ParallelOptions
{
MaxDegreeOfParallelism = maxDegreeOfParallelism ?? MaxDegreeOfParallelism,
CancellationToken = cancellationToken
};
Parallel.ForEach(actions, options, action => action());
}, cancellationToken);
}
/// <summary>
/// Creates a cancellation token with a timeout.
/// </summary>
/// <param name="timeout">The timeout</param>
/// <param name="cancellationToken">Optional token to combine with the timeout</param>
/// <returns>A cancellation token that will be canceled after the timeout or when the input token is canceled</returns>
public static CancellationToken CreateTimeoutToken(
TimeSpan timeout,
CancellationToken cancellationToken = default)
{
if (timeout == TimeSpan.MaxValue)
return cancellationToken;
var source = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken);
source.CancelAfter(timeout);
return source.Token;
}
}
}