Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PATH_add bin
1 change: 1 addition & 0 deletions .githooks/post-commit
18 changes: 18 additions & 0 deletions .githooks/post-commit.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env -S dotnet --
#:package TimeWarp.Amuru
#:property NoWarn=CA2007

using TimeWarp.Amuru;

string? root = Git.FindRoot();
if (root is null)
{
return 0;
}

await Shell.Builder("ganda")
.WithArguments("memsearch", "index-repo", "--background")
.WithWorkingDirectory(root)
.WithNoValidation()
.RunAsync();
return 0;
1 change: 1 addition & 0 deletions .githooks/post-merge
18 changes: 18 additions & 0 deletions .githooks/post-merge.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env -S dotnet --
#:package TimeWarp.Amuru
#:property NoWarn=CA2007

using TimeWarp.Amuru;

string? root = Git.FindRoot();
if (root is null)
{
return 0;
}

await Shell.Builder("ganda")
.WithArguments("memsearch", "index-repo", "--background")
.WithWorkingDirectory(root)
.WithNoValidation()
.RunAsync();
return 0;
File renamed without changes.
50 changes: 50 additions & 0 deletions .memsearch.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# MemSearch repo knowledge index — TimeWarp convention
#
# SPEC (proposed extension)
# -------------------------
# memsearch's stock CLI ignores [index]; this file is honored by:
# ganda memsearch index-repo
# ganda hooks install memsearch (post-commit / post-merge runfiles)
#
# Purpose: index markdown knowledge in THIS repo only. One Milvus collection
# per repo (auto-derived from repo path). Global DB file stays at
# ~/.memsearch/milvus.db unless [milvus].uri is overridden below.
#
# [index].paths
# Directory roots (relative to repo root). memsearch indexes all .md files
# under each path recursively. Missing paths are skipped.
#
# [index].exclude_paths
# Directory paths removed from the resolved path list before indexing.
# Does not prune subdirectories when a parent path (e.g. "kanban/") is listed.
#
# [index].exclude_globs
# Reserved — file-level globs (e.g. "**/task-template.md"). Not implemented in v1.
#
# [index].enabled
# false disables hook indexing (conversation plugins still work).
#
# [milvus].collection
# Empty = auto-derive ms_<repo-basename>_<8char_sha256> from repo root.
#
# Search this repo only:
# memsearch search "query" -c <collection> --source-prefix "$(pwd)/kanban/"

[index]
enabled = true
paths = [
"kanban",
"documentation",
"okf",
"adr",
".memsearch/memory",
]
exclude_paths = []
exclude_globs = [
"**/task-template.md",
"**/overview.md",
]

[milvus]
# uri = ".memsearch/milvus.db" # optional per-repo DB file
collection = ""
5 changes: 3 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@
"titleBar.inactiveForeground": "#15202b99"
},
"peacock.remoteColor": "#46A7EA",
"timewarp.blurImagePath": "assets/timewarp-flexbox-avatar.svg"
}
"timewarp.blurImagePath": "assets/timewarp-flexbox-avatar.svg",
"window.title": "timewarp-flexbox · ${rootName}${separator}${activeEditorShort}"
}
18 changes: 18 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "ganda: window icon",
"type": "shell",
"command": "ganda repo avatar window",
"runOptions": {
"runOn": "folderOpen"
},
"presentation": {
"reveal": "silent",
"echo": false
},
"problemMatcher": []
}
]
}
3 changes: 3 additions & 0 deletions BannedSymbols.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@

T:System.Console;Prefer injecting ITerminal. TimeWarp.Terminal.Terminal static class is available for migration.
T:System.Diagnostics.ProcessStartInfo;Use TimeWarp.Amuru Shell.Builder instead. See the 'amuru' skill for usage patterns.
3 changes: 2 additions & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>

<!-- Import repository path definitions -->
Expand Down Expand Up @@ -53,4 +54,4 @@
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.CodeStyle" PrivateAssets="all" />
</ItemGroup>

</Project>
<ItemGroup><PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" PrivateAssets="all" IncludeAssets="runtime; build; native; contentfiles; analyzers; buildtransitive" /><AdditionalFiles Include="$(MSBuildThisFileDirectory)BannedSymbols.txt" /></ItemGroup><ItemGroup><PackageReference Include="TimeWarp.Build.Tasks" PrivateAssets="all" /></ItemGroup></Project>
28 changes: 13 additions & 15 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,34 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<!-- MSBuild and NuGet behavior configuration -->
<PropertyGroup Label="MSBuild/NuGet Configuration">
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>

<ItemGroup Label="Runfiles">
<PackageVersion Include="TimeWarp.Amuru" Version="1.0.0-beta.5" />
</ItemGroup>
<PackageVersion Include="TimeWarp.Amuru" Version="1.0.0-beta.34" />
<PackageVersion Include="TimeWarp.Build.Tasks" Version="1.0.0" /><PackageVersion Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="5.6.0"><PrivateAssets>all</PrivateAssets><IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets></PackageVersion><PackageVersion Include="TimeWarp.Nuru" Version="3.0.0-beta.71" /><PackageVersion Include="TimeWarp.Nuru.DevCli" Version="3.0.0-beta.71" /></ItemGroup>

<ItemGroup Label="Testing">
<PackageVersion Include="TimeWarp.Fixie" Version="3.1.0" />
<PackageVersion Include="Fixie.TestAdapter" Version="4.1.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageVersion Include="Fixie.TestAdapter" Version="4.2.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.7.0" />
<PackageVersion Include="Shouldly" Version="4.3.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
<PackageVersion Include="coverlet.collector" Version="10.0.1" />
</ItemGroup>

<ItemGroup Label="Benchmarking">
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
<PackageVersion Include="BenchmarkDotNet" Version="0.15.8" />
</ItemGroup>

<ItemGroup Label="Code Analyzers">
<PackageVersion Include="GlobalUsingsAnalyzer" Version="1.4.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageVersion>
<PackageVersion Include="Roslynator.Analyzers" Version="4.14.1" />
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.14.1" />
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.14.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.100" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeStyle" Version="5.0.0" />

<PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" />
<PackageVersion Include="Roslynator.CodeAnalysis.Analyzers" Version="4.15.0" />
<PackageVersion Include="Roslynator.Formatting.Analyzers" Version="4.15.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.301" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.CodeStyle" Version="5.6.0" />
</ItemGroup>
</Project>
28 changes: 28 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
MIT License

Copyright (c) 2025-2026 TimeWarp Enterprises, LLC

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

---

TimeWarp.Flexbox is a from-scratch C# implementation of the flexbox layout
algorithm whose behavior is modeled on Facebook's Yoga layout engine
(https://github.com/facebook/yoga), which is licensed under the MIT License,
Copyright (c) Meta Platforms, Inc. and affiliates.
Loading
Loading