You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9255103
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .agents/project.md
+19-15Lines changed: 19 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
# Project Context
2
2
3
-
FlClash is a multi-platform proxy client based on ClashMeta (mihomo), built with Flutter. It supports Android, Windows, macOS, and Linux, using a Material You design with Surfboard-like UI.
3
+
FlClash is a multi-platform proxy client based on ClashMeta (mihomo), built with Flutter. It supports Android, Windows, macOS, and Linux, using Material You from `material_ui` as the base with Apple's Human Interface interaction conventions layered on top.
4
4
5
5
## Version Notes
6
6
7
-
- Flutter stays on the 3.47.x line. Release CI pins 3.47.4 and is the source
7
+
- Flutter stays on the 3.47.x line. Release CI pins 3.47.6 and is the source
8
8
of truth for release builds; `.fvmrc` and local SDKs may sit on another 3.47
9
9
patch. The editor in `plugins/code_forge` came from `code_forge` 10.14.0, which
10
10
needs Dart 3.13.2, so the CI pin cannot go below Flutter 3.47.2.
@@ -16,11 +16,11 @@ FlClash is a multi-platform proxy client based on ClashMeta (mihomo), built with
16
16
17
17
## Forked Dependencies
18
18
19
-
Two`pubspec.yaml`dependencies are pinned to a fork by commit SHA. Both forks
20
-
live under `chen08209`, the same account that owns this repository, so they are
19
+
One`pubspec.yaml`dependency is pinned to a fork by commit SHA. The fork lives
20
+
under `chen08209`, the same account that owns this repository, so it is
21
21
maintained in-house rather than tracked from a third party: advancing a pin is a
22
22
local decision, and there is no external maintainer to wait on for the patch
23
-
itself. What each fork still waits on is the *upstream* fix that would let the pin
23
+
itself. What the fork still waits on is the *upstream* fix that would let the pin
24
24
be dropped entirely, recorded below.
25
25
26
26
Each entry records what the fork changes and what has to be true before it can go
@@ -47,13 +47,11 @@ now, see the window plugin section of `architecture.md`.
47
47
directly, and upstream's `^2.0.0` constraint cannot co-resolve with it.
48
48
- Drop the fork when upstream publishes a release that accepts `win32_registry` 3.x.
49
49
50
-
`yaml_writer` — `chen08209/yaml_writer`, version 2.1.0.
51
-
52
-
- Adds `StringNode.quoteKey()` and applies it to map keys in `lib/src/node.dart`.
53
-
Upstream quotes values but emits keys verbatim, so a profile key needing quotes
54
-
is written as invalid YAML.
55
-
- Drop the fork once upstream quotes map keys by the same
56
-
`isValidUnquotedString` rule it already applies to values.
50
+
The `yaml_writer` fork (`chen08209/yaml_writer`) was replaced by
51
+
`lib/common/yaml_writer.dart`. Its key quoting let keys such as `!a`, `'a` or
52
+
`0x1F` reach the Core's yaml.v3 as a parse error or a non-string; a merge key
53
+
`<<` stays plain on purpose, because `package:yaml` keeps it as an ordinary key
54
+
and the Core applies the merge.
57
55
58
56
The `code_forge` fork (`chen08209/code_forge`) is frozen: its Dart code now lives
59
57
in the in-repo `plugins/code_forge` package and its Rust code in the `editor/`
@@ -69,9 +67,15 @@ resolved-until-the-ceiling-moves rather than as debt:
69
67
-`intl` is intentionally unbounded (`any`) and `material_color_utilities` is
70
68
resolved by the Flutter SDK; neither is a bound this repository sets.
71
69
72
-
`freezed`, the `riverpod` set, `build_runner`, `drift_dev`, `intl_utils` and
73
-
`test` all resolve against the analyzer the pinned SDK ships; none of them is
74
-
held back. When an upgrade fails version solving, record the blocker here with
70
+
The `riverpod` set, `build_runner`, `drift_dev` and `intl_utils` resolve to their
71
+
latest releases. Two are held back:
72
+
73
+
-`freezed` 4.0.2 needs `analyzer` 14, while `intl_utils` 2.8.16 still requires
74
+
`analyzer` ^13. It moves once `intl_utils` accepts analyzer 14.
75
+
-`test` 1.32.0 needs `test_api` 0.7.14, and `flutter_test` on Flutter 3.47 pins
76
+
0.7.12. It moves with the SDK.
77
+
78
+
When an upgrade fails version solving, record the blocker here with
75
79
what has to change upstream before the pin can move, so the next
76
80
`flutter pub outdated` run does not rediscover it.
0 commit comments