ace-git-copilot 0.3.7__tar.gz → 0.3.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/PKG-INFO +5 -1
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/README.md +4 -0
- ace_git_copilot-0.3.8/ace/__init__.py +1 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/history_analyzer.py +2 -1
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/rebase_helper.py +2 -1
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/core/git_ops.py +3 -2
- ace_git_copilot-0.3.8/ace/utils/string_utils.py +40 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/pyproject.toml +1 -1
- ace_git_copilot-0.3.8/tests/test_string_utils.py +17 -0
- ace_git_copilot-0.3.7/ace/__init__.py +0 -1
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/AGENTS.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/e2e_testing_track/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/e2e_testing_track/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/e2e_testing_track/SCOPE.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/e2e_testing_track/progress.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/emojis_list.txt +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/find_unused_modules.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/handoff.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/measure_lazy_startup.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/measure_startup.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/profile_imports.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/progress.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/run_importtime.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/search_banner.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/search_emojis.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/search_git_usages.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/search_usages.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/test_import_profiler.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/test_mocked_sys.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/handoff.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/implementation_track/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/implementation_track/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/implementation_track/explorer_initial_report.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/implementation_track/progress.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/orchestrator/.gitkeep +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/orchestrator/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/orchestrator/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/orchestrator/PROJECT.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/orchestrator/progress.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/teamwork_preview_explorer_e2e_explore/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/teamwork_preview_explorer_e2e_explore/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/teamwork_preview_explorer_e2e_explore/handoff.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/teamwork_preview_explorer_e2e_explore/progress.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_e2e_testing/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_e2e_testing/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_e2e_testing/progress.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_m1_startup/BRIEFING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_m1_startup/ORIGINAL_REQUEST.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_m1_startup/progress.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.env.example +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.github/workflows/tests.yml +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.gitignore +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/CODE_OF_CONDUCT.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/CONTRIBUTING.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/LICENSE +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/PROJECT.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/SECURITY.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/SUPPORT.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/TEST_INFRA.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/TEST_READY.md +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/__main__.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/changelog_generator.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/code_reviewer.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/commit_generator.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/conflict_resolver.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/gitignore_generator.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/intent_parser.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/llm_factory.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/pr_drafter.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/changelog.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/commit.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/conflict.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/doctor.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/explain.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/ignore.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/intent.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/pr.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/rebase.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/review.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/search.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ai/prompts/undo.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/cli.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/core/config.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/core/context.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/core/diagnostics.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/core/hooks.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/core/safety.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ui/banner.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ui/dashboard.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ui/display.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ui/prompts.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/ui/themes.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/utils/conflict_parser.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/utils/diff_parser.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/ace/utils/json_utils.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/conftest.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/e2e/conftest.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/e2e/test_tier1_features.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/e2e/test_tier2_boundaries.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/e2e/test_tier3_combinations.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/e2e/test_tier4_workloads.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_changelog_generator.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_code_reviewer.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_config_atomic_write.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_conflict_resolver.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_conflict_resolver_backup.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_context_gitdir_detection.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_diagnostics.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_diff_trimmer.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_git_ops.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_git_ops_execute.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_help.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_history_analyzer.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_hooks.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_ignore.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_intent_parser.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_llm_factory.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_llm_factory_ollama.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_merge_state.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_pr_drafter.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_rebase_helper.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_safety.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_search.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_undo.py +0 -0
- {ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/tests/test_workspace.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ace-git-copilot
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.8
|
|
4
4
|
Summary: AI-powered Git copilot — talk to Git in plain English
|
|
5
5
|
Project-URL: Homepage, https://github.com/jachinsamuel/Ace
|
|
6
6
|
Project-URL: Documentation, https://github.com/jachinsamuel/Ace#readme
|
|
@@ -199,6 +199,10 @@ Distributed under the MIT License. See [LICENSE](LICENSE) for more details.
|
|
|
199
199
|
|
|
200
200
|
## Changelog
|
|
201
201
|
|
|
202
|
+
### v0.3.8 — Emoji Stripping from Git History (2026-07-14)
|
|
203
|
+
* Implemented automatic Unicode emoji stripping for all Git commit messages retrieved via `GitOps.get_log`.
|
|
204
|
+
* Ensured history query summaries, rebase lists, and dashboard commit tables are completely clean and emoji-free.
|
|
205
|
+
|
|
202
206
|
### v0.3.7 — UI Status Icons Modernization (2026-07-14)
|
|
203
207
|
* Replaced clunky double-character ASCII status indicators (`>>`, `**`, `!!`, `EE`) with clean, modern Unicode status icons (`›`, `✔`, `⚠`, `✘`).
|
|
204
208
|
* Updated confirm prompts, severity warnings, and code review listings to use the new icons for a clean, consistent terminal interface.
|
|
@@ -166,6 +166,10 @@ Distributed under the MIT License. See [LICENSE](LICENSE) for more details.
|
|
|
166
166
|
|
|
167
167
|
## Changelog
|
|
168
168
|
|
|
169
|
+
### v0.3.8 — Emoji Stripping from Git History (2026-07-14)
|
|
170
|
+
* Implemented automatic Unicode emoji stripping for all Git commit messages retrieved via `GitOps.get_log`.
|
|
171
|
+
* Ensured history query summaries, rebase lists, and dashboard commit tables are completely clean and emoji-free.
|
|
172
|
+
|
|
169
173
|
### v0.3.7 — UI Status Icons Modernization (2026-07-14)
|
|
170
174
|
* Replaced clunky double-character ASCII status indicators (`>>`, `**`, `!!`, `EE`) with clean, modern Unicode status icons (`›`, `✔`, `⚠`, `✘`).
|
|
171
175
|
* Updated confirm prompts, severity warnings, and code review listings to use the new icons for a clean, consistent terminal interface.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.8"
|
|
@@ -38,8 +38,9 @@ class HistoryAnalyzer:
|
|
|
38
38
|
HumanMessage(content=user_prompt)
|
|
39
39
|
]
|
|
40
40
|
|
|
41
|
+
from ace.utils.string_utils import strip_emojis
|
|
41
42
|
response = llm.invoke(messages)
|
|
42
|
-
return response.content.strip()
|
|
43
|
+
return strip_emojis(response.content.strip())
|
|
43
44
|
|
|
44
45
|
def get_repo_stats(self) -> Dict[str, Any]:
|
|
45
46
|
"""
|
|
@@ -20,6 +20,7 @@ class RebaseHelper:
|
|
|
20
20
|
except Exception:
|
|
21
21
|
return []
|
|
22
22
|
|
|
23
|
+
from ace.utils.string_utils import strip_emojis
|
|
23
24
|
commits = []
|
|
24
25
|
for line in log_data.splitlines():
|
|
25
26
|
if "|" in line:
|
|
@@ -28,7 +29,7 @@ class RebaseHelper:
|
|
|
28
29
|
commits.append({
|
|
29
30
|
"hexsha": parts[0],
|
|
30
31
|
"author": parts[1],
|
|
31
|
-
"summary": parts[2].strip()
|
|
32
|
+
"summary": strip_emojis(parts[2].strip())
|
|
32
33
|
})
|
|
33
34
|
return commits
|
|
34
35
|
|
|
@@ -101,12 +101,13 @@ class GitOps:
|
|
|
101
101
|
args.append(path)
|
|
102
102
|
|
|
103
103
|
try:
|
|
104
|
+
from ace.utils.string_utils import strip_emojis
|
|
104
105
|
commits = self.repo.iter_commits(*args, **kwargs)
|
|
105
106
|
return [
|
|
106
107
|
{
|
|
107
108
|
"hexsha": commit.hexsha,
|
|
108
|
-
"summary": commit.summary,
|
|
109
|
-
"message": commit.message,
|
|
109
|
+
"summary": strip_emojis(commit.summary),
|
|
110
|
+
"message": strip_emojis(commit.message),
|
|
110
111
|
"author": commit.author.name,
|
|
111
112
|
"date": commit.committed_datetime.isoformat(),
|
|
112
113
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
def strip_emojis(text: str) -> str:
|
|
4
|
+
"""
|
|
5
|
+
Strip Unicode emojis from text to keep the terminal UI clean.
|
|
6
|
+
"""
|
|
7
|
+
if not text:
|
|
8
|
+
return text
|
|
9
|
+
|
|
10
|
+
# Unicode emoji ranges:
|
|
11
|
+
# - \U0001f600-\U0001f64f (emoticons)
|
|
12
|
+
# - \U0001f300-\U0001f5ff (symbols & pictographs)
|
|
13
|
+
# - \U0001f680-\U0001f6ff (transport & map symbols)
|
|
14
|
+
# - \U0001f1e0-\U0001f1ff (flags)
|
|
15
|
+
# - \U00002700-\U000027bf (dingbats)
|
|
16
|
+
# - \U00002600-\U000026ff (miscellaneous symbols)
|
|
17
|
+
# - \U0001f900-\U0001f9ff (supplemental symbols)
|
|
18
|
+
# - \U0001fa00-\U0001faff (symbols and pictographs extended)
|
|
19
|
+
emoji_pattern = re.compile(
|
|
20
|
+
"["
|
|
21
|
+
"\U0001f600-\U0001f64f"
|
|
22
|
+
"\U0001f300-\U0001f5ff"
|
|
23
|
+
"\U0001f680-\U0001f6ff"
|
|
24
|
+
"\U0001f1e0-\U0001f1ff"
|
|
25
|
+
"\U00002700-\U000027bf"
|
|
26
|
+
"\U00002600-\U000026ff"
|
|
27
|
+
"\U0001f900-\U0001f9ff"
|
|
28
|
+
"\U0001fa00-\U0001faff"
|
|
29
|
+
"]+",
|
|
30
|
+
re.UNICODE
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
cleaned = emoji_pattern.sub("", text)
|
|
34
|
+
# Replace multiple spaces/newlines with a single space (while preserving newlines if multi-line)
|
|
35
|
+
# To be safe for markdown summaries, we can just strip emojis and keep other formatting intact.
|
|
36
|
+
# Let's do a simple strip of double spaces that result from removing the emoji.
|
|
37
|
+
cleaned = re.sub(r' +', ' ', cleaned)
|
|
38
|
+
# Also clean up trailing/leading spaces on lines
|
|
39
|
+
lines = [line.strip() for line in cleaned.splitlines()]
|
|
40
|
+
return "\n".join(lines).strip()
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from ace.utils.string_utils import strip_emojis
|
|
2
|
+
|
|
3
|
+
def test_strip_emojis():
|
|
4
|
+
# Test cases with different kinds of emojis and text
|
|
5
|
+
assert strip_emojis("🎨 style(ui): update hover effects") == "style(ui): update hover effects"
|
|
6
|
+
assert strip_emojis("🚀 feat(app): implement loader") == "feat(app): implement loader"
|
|
7
|
+
assert strip_emojis("🤖 feat: implement robot") == "feat: implement robot"
|
|
8
|
+
assert strip_emojis("📝 docs: update readme") == "docs: update readme"
|
|
9
|
+
assert strip_emojis("Normal message without emoji") == "Normal message without emoji"
|
|
10
|
+
assert strip_emojis("Multiple emojis 🎨 🚀 test") == "Multiple emojis test"
|
|
11
|
+
assert strip_emojis("") == ""
|
|
12
|
+
assert strip_emojis(None) is None
|
|
13
|
+
|
|
14
|
+
# Test multi-line text
|
|
15
|
+
multi_line = "🎨 First line\n🚀 Second line"
|
|
16
|
+
expected = "First line\nSecond line"
|
|
17
|
+
assert strip_emojis(multi_line) == expected
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.3.7"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/e2e_testing_track/ORIGINAL_REQUEST.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/find_unused_modules.py
RENAMED
|
File without changes
|
|
File without changes
|
{ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/measure_lazy_startup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/explorer_init/test_import_profiler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/implementation_track/ORIGINAL_REQUEST.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_e2e_testing/ORIGINAL_REQUEST.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ace_git_copilot-0.3.7 → ace_git_copilot-0.3.8}/.agents/worker_m1_startup/ORIGINAL_REQUEST.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|